Note: The other languages of the website are Google-translated. Back to English

Kako dinamično izvleči seznam enoličnih vrednosti iz obsega stolpcev v Excelu?

Za obseg stolpcev, katerih vrednosti se redno spreminjajo, in vedno morate dobiti vse edinstvene vrednosti iz obsega, ne glede na to, kako se je spremenilo. Kako narediti dinamični seznam edinstvenih vrednosti? Ta članek vam bo pokazal, kako ravnati z njim.

Dinamično izvlecite seznam enoličnih vrednosti iz obsega stolpcev s formulo
Dinamično izvlecite seznam enoličnih vrednosti iz obsega stolpcev s kodo VBA


Dinamično izvlecite seznam enoličnih vrednosti iz obsega stolpcev s formulo

Kot je prikazano na spodnji sliki zaslona, ​​morate iz obsega B2: B9 dinamično izvleči seznam edinstvenih vrednosti. Preizkusite naslednjo formulo matrike.

1. Izberite prazno celico, na primer D2, vanjo vnesite spodnjo formulo in pritisnite tipko Ctrl + Shift + Vnesite tipke hkrati. (B2: B9 so podatki stolpcev, za katere želite izvleči edinstvene vrednosti, D1 je zgornja celica, v kateri je vaša formula)

=IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),"")

2. Nadaljujte z izbiro celice D2, nato povlecite ročico za polnjenje navzdol, da dobite vse edinstvene vrednosti iz določenega obsega.

Zdaj so izvlečene vse edinstvene vrednosti v obsegu stolpcev B2: B9. Ko se vrednosti v tem obsegu spremenijo, se bo edinstveni seznam vrednosti takoj dinamično spremenil.

Preprosto izberite in označite vse edinstvene vrednosti v obsegu v Excelu:

O Izberite Podvojene in edinstvene celice uporabnost Kutools za Excel vam lahko pomaga enostavno izbrati in označiti vse unikatne vrednosti (vključite prve dvojnike) ali edinstvene vrednosti, ki se pojavijo samo enkrat, pa tudi podvojene vrednosti, kot jih potrebujete, kot je prikazano spodaj.
Prenesite Kutools za Excel zdaj! (30-dnevna prosta pot)


Dinamično izvlecite seznam enoličnih vrednosti iz obsega stolpcev s kodo VBA

Seznam enoličnih vrednosti lahko tudi dinamično izvlečete iz obsega stolpcev z naslednjo kodo VBA.

1. Pritisnite druga + F11 tipke hkrati, da odprete Microsoft Visual Basic za aplikacije okno.

2. V Ljubljani Microsoft Visual Basic za aplikacije okno, kliknite Vstavi > Moduli. Nato kopirajte in prilepite spodnjo kodo VBA v Moduli okno.

Koda VBA: iz obsega izvlecite seznam enoličnih vrednosti

Sub CreateUniqueList()
Dim xRng As Range
Dim xLastRow As Long
Dim xLastRow2 As Long
Dim I As Integer
On Error Resume Next
Set xRng = Application.InputBox("Please select range:", "Kutools for Excel", Selection.Address, , , , , 8)
If xRng Is Nothing Then Exit Sub
On Error Resume Next
xRng.Copy Range("D2")
xLastRow = xRng.Rows.Count + 1
ActiveSheet.Range("D2:D" & xLastRow).RemoveDuplicates Columns:=1, Header:=xlNo
xLastRow2 = Cells(Rows.Count, "B").End(xlUp).Row
For I = 1 To xLastRow2
  If ActiveSheet.Range("D2:D" & xLastRow2).Cells(I).Value = "" Then
     ActiveSheet.Range("D2:D" & xLastRow2).Cells(I).Delete
  End If
Next
End Sub

Opombe: V kodi je D2 celica, v kateri boste našli edinstveni seznam vrednosti. Lahko ga spremenite po potrebi.

3. Vrnite se na delovni list, kliknite Vstavi > Oblike > pravokotnik. Oglejte si posnetek zaslona:

4. Na svoj delovni list nariši pravokotnik, nato nanj vpiši nekaj besed, ki jih moraš prikazati. Nato ga kliknite z desno miškino tipko in izberite Dodeli makro v meniju z desnim klikom. V Dodeli makro v pogovornem oknu izberite UstvariUniqueList v Ime makra in nato kliknite OK . Oglejte si posnetek zaslona:

5. Zdaj kliknite gumb pravokotnika, a Kutools za Excel Pojavi se pogovorno okno, izberite obseg, ki vsebuje edinstvene vrednosti, ki jih morate izvleči, in nato kliknite OK gumb.

Odslej lahko ponovite zgornji korak 5, da samodejno posodobite edinstveni seznam vrednosti.


Sorodni članki:


Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila denarja.
zavihek kte 201905

Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
dno pisarniške mize
Komentarji (35)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Hvala za vadnico. Kako bi z uporabo metode formule spremenili formulo, če bi želeli dodati kvalifikator kategorije? Recimo, da v stolpcu C ločiš, ali je predmet sadje ali zelenjava. Kako bi spremenili kodo, da bi razvrstili samo edinstveno sadje in izključili zelenjavo? Poskusil sem zamenjati COUNTIF s COUNTIFS, pri čemer sem uporabil drugo merilo štetja (LIST RANGE,»CATEGORY«), vendar se vrne prazno. Ali bi moral razširiti svoj niz in vključiti VLOOKUP?
Ta komentar je moderator na spletnem mestu minimiziral
V Excelu sem dober, vendar se resnično trudim razumeti, kako in zakaj zgornja formula deluje (deluje za tisto, za kar jo uporabljam, vendar moram razumeti, zakaj). Včasih sem malo zmeden pri uporabi nizov, tako da bi bila vsaka razlaga v idiotih izrazih zelo koristna. Lep pozdrav
Ta komentar je moderator na spletnem mestu minimiziral
Ta formula je zastarela in ne deluje. Dobesedno sem samo nastavil ta natančen Excelov list, da vidim, ali lahko to formulo dosežem, da deluje, pa ne.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo fant,
Katero različico Officea uporabljate?
Ta komentar je moderator na spletnem mestu minimiziral
{=INDEX($Q$3:$Q$263,MATCH(0,COUNTIF(V$2:V2,$Q$3:$Q$263),0))} - ugotovil, da to deluje z drugega mesta...

Uporabite Ctrl+Shift+Enter, da dobite funkcijo matrike (kodrate oklepaje). Povlecite, kopirajte in prilepite formule, dokler se ne prikaže #NA. Moj nabor podatkov je bil v stolpcu-Q, primerjali so ga, da bi videli, ali obstaja na seznamu unikatov v stolpcu-V, ki se nenehno razteza vzdolž tega istega stolpca.
Ta komentar je moderator na spletnem mestu minimiziral
Dober dan.
Prosimo, navedite vse edinstvene vrednosti stolpca Q s formulo abobv in nato uporabite njegovo formulo =IF(D2=V1,"Match","No match") za primerjavo, če se unikatne vrednosti v stolpcu Q primerjajo s stolpcem V v isti vrstici .
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni in hvala za pomoč.

Potrebujem točno to funkcionalnost, vendar se mora moj seznam "edinstvenih vrednosti" razširiti po stolpcih namesto po vrsticah, tako da mi razširitveni seznam po vrsticah ne bo deloval.

Kako lahko spremenim to formulo, da se razširi seznam "edinstvenih vrednosti", ko ga povlečem čez stolpce?

Odmik()?
Transponiranje ()?
Indirect() z nizom absolutnih referenc, povezanih s sklicevanjem na stolpec namesto na vrstico?


Še enkrat hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Dragi Ryan,
Ta formula =IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$2:D2, $B$2:$B$9), 0)),"") + Ctrl + Shift + Enter lahko vam pomaga rešiti problem.
Glej spodnji posnetek zaslona:
Ta komentar je moderator na spletnem mestu minimiziral
Prav tako je iz kakršnega koli razloga izvirna formula zagotovila:
=IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),"")

vrne opozorilo "krožna referenca" in ne bo izračunal..
Ta komentar je moderator na spletnem mestu minimiziral
Dragi Ryan,
Katero različico Officea uporabljate? Formula dobro deluje v moji Office 2016 in 2013.
Ta komentar je moderator na spletnem mestu minimiziral
To se mi je že zgodilo – moja popravka je bila, da sem vnašal formulo v celico D1 (ekvivalentno na delovnem listu, ki sem ga uporabljal). Ne glede na celico, ki ji ustreza $D:$1, jo morate vnesti v spodnjo celico - D2. Oprostite, če niste zaradi tega dobili napako
Ta komentar je moderator na spletnem mestu minimiziral
Kakšen nasvet, kako pridobiti možnost VBA za delo z Excelom 2016 za macOS? Sledil sem korakom; ko pa zaženem makro, se sploh nič ne zgodi. Hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Daer Jones,
Poskusite spodnjo kodo VBA in mi sporočite, ali deluje za vas. Hvala vam!

Sub CreateUniqueList()
Dim xRng As Range
Zatemni xLastRow tako dolgo
Zatemni xLastRow2 kot dolgo
Dim I kot celo število
' Ob napaki Nadaljuj naprej
Nastavite xRng = Application.InputBox("Prosim, izberite obseg:", "Kutools for Excel", Selection.Address, , , , , 8)
Če xRng ni nič, zapustite Sub
On Error Resume Next
xRng.Copy Range("D2")
xLastRow = xRng.Rows.Count + 1
ActiveSheet.Range("D2:D" & xLastRow).RemoveDuplicates Columns:=1, Header:=xlNo
xLastRow2 = Celice(vrstice.Število, "B").End(xlUp).Vrstica
Za I = 1 do xLastRow2
Če ActiveSheet.Range("D2:D" & xLastRow2).Cells(I).Value = "" Potem
ActiveSheet.Range("D2:D" & xLastRow2).Cells(I).Delete
Konec Če
Naslednji
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Crystal,
Poskušam uporabiti različico VB seznama edinstvenih vrednosti in naletim na težavo.
Obseg, iz katerega želim ustvariti stolpec edinstvenih vrednosti, so vse formule, ki se nanašajo na različne zavihke.
Kako pridobiti vrednost za prenos namesto formule?
Ta komentar je moderator na spletnem mestu minimiziral
Dragi Mike,
Prosimo, pretvorite svoje reference formule v absolutne in nato uporabite skript VB.
Ta komentar je moderator na spletnem mestu minimiziral
Imam enak problem, le da se moja formula nanaša na imena stolpcev in se ne more pretvoriti v absolutno.
Kako spremenim vba, da prilepim vrednosti in ne formule?
Ta komentar je moderator na spletnem mestu minimiziral
Kako bi dodali več meril, na primer, če bi želeli dodati samo dinamični seznam, če je bil datum samo 9/12?

Poskušam "&" v formuli MATCH, vendar ne deluje.

Na primer, glede na vaš primer:
=IFERROR(INDEX($B$2:$B$9, MATCH(0 & B4,COUNTIF($D$1:D1, $B$2:$B$9) & $A$2:$A$9, 0)),"" )
To povzroči napako ali ustvari dvojnike.

Druga možnost je, da sem prebral, da "+" morda deluje, čeprav ga ne morem doseči. Ali z uporabo SMALL.

Ideje?
Ta komentar je moderator na spletnem mestu minimiziral
Dragi Zac,
Žal ne morem pomagati s tem, lahko svoje vprašanje objavite na našem forumu: https://www.extendoffice.com/forum.html da pridobite več podpore za Excel od našega strokovnjaka.
Ta komentar je moderator na spletnem mestu minimiziral
Kako bi dodali drugo spremenljivko? Na primer, želim vse edinstvene elemente v enem stolpcu, ki imajo podobno vrednost tudi v drugem stolpcu. V vašem primeru si predstavljajte 3. stolpec z naslovom »Oddelek«, ki bi imel vrednosti, kot so izdelek, meso itd. Zavedam se, da so vse to Produce, vendar upam, da razumete mojo misel. Ali bi formulo CountIF spremenili v COUNTIFS ali jo spremenili na drug način?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Matt
Poskusite to formulo =IF(ISNA(VLOOKUP(A2,$C$2:$C$13,1,FALSE)),"Da","").
Predpostavimo, da sta primerjana seznama stolpec A in stolpec C, če edinstvene vrednosti ostanejo samo v stolpcu A, ne pa tudi v stolpcu C, bo v stolpcu B prikazano Da; medtem ko če v stolpcu B ne vrnete ničesar, to pomeni, da ustrezna vrednost ostane v stolpcu A in stolpcu C.
Ta komentar je moderator na spletnem mestu minimiziral
Hvala za odgovor.. vendar je zelo zanimivo izvleči to edinstveno vrednost, če je prikazana DA.. ali mi lahko svetujete formulo za izvlečenje edinstvene vrednosti v drugem stolpcu.
Ta komentar je moderator na spletnem mestu minimiziral
Če to storim za tisoč vrstico Excelovega lista v najnovejši različici Excela na Macu, se nikoli ne vrne. Prva vrstica deluje, a ko podvojim navzdol, gre excel v računalniški način, ki že več kot dve uri ne vrača vrednosti.

Imate kakšne misli o tem, kako to narediti za velike sezname (do 2k vrstic), ki bodo vrnili 50 ali 60 edinstvenih vrednosti?

To sem ponaredil v aplikaciji "Številke" in tam deluje odlično, za izračun vzame le nekaj minut. Samo tako dolgo traja v Excelu, da se sprašujem, ali se bo kdaj dokončal. Načrtujem, da ga pustim "teči" čez noč, da vidim, kaj se bo zgodilo.
Ta komentar je moderator na spletnem mestu minimiziral
Preverite možnosti izračunavanja. Nastaviti ga je treba na samodejno. Datoteka > Možnosti > Formule > Možnosti izračuna > Izračun delovnega zvezka (samodejna izbira)
Ta komentar je moderator na spletnem mestu minimiziral
Poskušam povleči formulo navzdol mimo svojih dejanskih podatkov, tako da lahko vnesem nabore podatkov različnih velikosti in mi ni treba ničesar prilagajati. Vendar zadnja vrstica po koncu mojih dejanskih podatkov vedno vrne "0". Edinstvene vrednosti uporabljam za nekaj drugega v sosednjem stolpcu, 0 pa povzroči, da se zadnja vrednost ponovi (ko izbrišem 0, se vrednost ne ponavlja več). Imate kakšno idejo, kako to popraviti? Uporabljam tudi Office 365 Business
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, hvala za pomoč.
Zdaj, kako lahko svoje vrednosti razvrstim tudi po abecedi? (Ne želim uporabiti filtra na moji glavni mizi)
Ali naj uporabim COUNTIFS namesto COUNTIF?
Prosim pomagajte
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Alexis,
Žal izvlečene vrednosti ne morem razvrstiti po abecedi hkrati s formulo. Hvala za vaš komentar.
Ta komentar je moderator na spletnem mestu minimiziral
Uporabljam to formulo =IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),""), ki je odlična za en stolpec, vendar so moji podatki razporejeni po vrsti stolpcev in vrstic. Ali lahko uredim formulo tako, da vključuje celotno območje? Moji podatki živijo od AC4 do AR60 ...
Ta komentar je moderator na spletnem mestu minimiziral
Preizkusil sem kodo VBA in formulo. Koda VBA deluje zelo dobro, vendar ne morem hraniti datoteke z makri. Toda težava je v tem, da formule ne morem narediti. Je imel kdo kakšno idejo? Hvala vam
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo Charlotte,
Hvala za vaš komentar. Datoteko lahko shranite z makro za nadaljnjo uporabo, tako da shranite delovni zvezek kot delovni zvezek Excel z omogočenimi makri.
Za težavo s formulo, ali bi prosim predložili posnetek zaslona svojih podatkov? Hvala za vaš komentar.
Ta komentar je moderator na spletnem mestu minimiziral
najlepša hvala
Ta komentar je moderator na spletnem mestu minimiziral
kako narediti, da koda vba deluje za obseg, kjer je bila uporabljena druga formula?v stolpcu BI ima formulo, ki se nanaša na stolpca D in E.
Če uporabim uporabi kodo za stolpec L (recimo), (očitno s pravilnim spreminjanjem celic v kodi) makro vrne formulo, uporabljeno za stolpca M in N... Deluje torej, vendar ne tako, kot želim! Kako ohraniti vrednosti v stolpcu B? hvala
Ta komentar je moderator na spletnem mestu minimiziral
Ik heb gemerkt dat de 'formule'-methode erg traag werkt bij grote datasets. Een goed alternativa je het gebruik van een draaitabel. Kies dan alleen de rijlabels, je krijgt dan een lijstje met unieke waarden. Het kan zijn dat je wat extra's krijgt "(leeg)" bijvoorbeeld. Je kunt deze er vervolgens uitfilteren. Helaas kun je maar op 1 Criterium filteren. Ook daar zijn wel weer oplossingen voor, maar dat je wat kompleksnejši.
Ta komentar je moderator na spletnem mestu minimiziral
Želel bi, da bi lahko naredil popolnoma isto stvar, le da bi uporabil dva ločena obsega stolpcev (B2:B9) in (D2:D9), ali je to mogoče?
Ta komentar je moderator na spletnem mestu minimiziral
Hi Anthony,
Rezultate lahko postavite v isti stolpec kot izvirni podatki. Kot je v tem primeru stolpec B.
Vendar se morate v formuli sklicevati na zgornjo celico rezultatne celice, kot sledi.
=IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($B$11:B11, $B$2:$B$9), 0)),"") + Ctrl + Shift + Enter
Ta komentar je moderator na spletnem mestu minimiziral
con este procedimiento de filtro se hace de forma muy rapida

1.EN ESTE EJEMPLO los datos a remover los duplicados estan en la col A de la fila 59 a la 239
2. določite merilo filtrado en este caso en la fila d56 el mismo titulo de la lista a remover duplicados y la d57 la dejo en blanco
3. una vez ejecutado se muestran los datos en la fila destino, que en mi caso fue la d59

Range("A59:A239").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _
("D56:D57"), CopyToRange:=Obseg("D59"), Unique:=True
Tu še ni objavljenih komentarjev
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL