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

Hvordan udtrækkes en liste med unikke værdier dynamisk fra et kolonneområde i Excel?

For et kolonneområde, hvor værdierne ændres regelmæssigt, og du altid har brug for at få alle de unikke værdier fra området, uanset hvordan det ændrede sig. Hvordan laver man en dynamisk liste over unikke værdier? Denne artikel viser dig, hvordan du håndterer det.

Uddrag dynamisk en liste over unikke værdier fra et kolonneområde med formlen
Uddrag dynamisk en liste over unikke værdier fra et kolonneområde med VBA-kode


Uddrag dynamisk en liste over unikke værdier fra et kolonneområde med formlen

Som vist nedenstående skærmbillede skal du dynamisk udtrække en liste over unikke værdier fra område B2: B9. Prøv venligst følgende matrixformel.

1. Vælg en tom celle, f.eks. D2, indtast nedenstående formel i den, og tryk på Ctrl + Flytte + Indtast taster samtidigt. (B2: B9 er de søjledata, som du vil udtrække de unikke værdier, D1 er ovenstående celle, hvor din formel er placeret)

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

2. Bliv ved med at vælge celle D2, og træk derefter udfyldningshåndtaget ned for at få alle unikke værdier fra det angivne interval.

Nu ekstraheres alle unikke værdier i kolonneområde B2: B9. Når værdier i dette interval ændres, ændres listen over unikke værdier med det samme.

Vælg og fremhæv nemt alle unikke værdier i et interval i Excel:

Vælg Duplicate & Unique Cells nytte af Kutools til Excel kan hjælpe dig med let at vælge og fremhæve alle unikke værdier (inkludere de første duplikater) eller de unikke værdier, der kun vises en gang, samt duplikere værdier, som du har brug for, som vist nedenstående skærmbillede.
Download Kutools til Excel nu! (30-dag gratis spor)


Uddrag dynamisk en liste over unikke værdier fra et kolonneområde med VBA-kode

Du kan også udtrække en liste over unikke værdier dynamisk fra et kolonneområde med følgende VBA-kode.

1. Trykke andre + F11 taster samtidigt for at åbne Microsoft Visual Basic til applikationer vindue.

2. i Microsoft Visual Basic til applikationer vindue, skal du klikke på indsatte > Moduler. Kopier og indsæt derefter nedenstående VBA-kode i Moduler vindue.

VBA-kode: Uddrag en liste over unikke værdier fra et interval

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

Bemærk: I koden er D2 den celle, du finder den unikke værdiliste. Du kan ændre det efter behov.

3. Gå tilbage til regnearket, klik indsatte > Former > rektangel. Se skærmbillede:

4. Tegn et rektangel i dit regneark, og indtast derefter nogle ord, du skal have vist på det. Højreklik derefter på den, og vælg Tildel makro fra højreklikmenuen. I Tildel makro dialogboksen skal du vælge Opret en unik liste i Makronavn og klik derefter på OK knap. Se skærmbillede:

5. Klik nu på rektangelknappen, a Kutools til Excel dialogboksen dukker op, skal du vælge det interval, der indeholder unikke værdier, du skal udtrække, og klik derefter på OK .

Fra nu af kan du gentage ovenstående trin 5 for automatisk at opdatere den unikke værdiliste.


Relaterede artikler:


De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (35)
Ingen vurderinger endnu. Vær den første til at bedømme!
Denne kommentar blev minimeret af moderatoren på webstedet
Tak for vejledningen. Ved hjælp af formelmetoden, hvordan ville du ændre formlen, hvis du ville tilføje en kategorikvalifikation? Sig, at du i kolonne C skelner mellem, om varen er en frugt eller en grøntsag. Hvordan ville du ændre koden til kun at sortere de unikke frugter og udelukke grøntsagerne? Jeg prøvede at erstatte COUNTIF med COUNTIFS ved at bruge det andet countifs-kriterie (LIST RANGE,"CATEGORY"), men det returnerer tomt. Skal jeg udvide mit array og inkorporere VLOOKUP?
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg er udmærket til excel, men jeg prøver virkelig at pakke mit hoved om, hvordan og hvorfor ovenstående formel virker (den virker til det, jeg bruger den til, men jeg må forstå hvorfor). Jeg bliver nogle gange lidt forvirret ved at bruge arrays, så enhver forklaring i idioter ville være yderst hjælpsom.
Denne kommentar blev minimeret af moderatoren på webstedet
Denne formel er forældet og virker ikke. Jeg har bogstaveligt talt lige sat dette nøjagtige excel-ark op for at se, om jeg kunne få denne formel til at virke, og det gør den ikke.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej fyr,
Hvilken Office-version bruger du?
Denne kommentar blev minimeret af moderatoren på webstedet
{=INDEX($Q$3:$Q$263,MATCH(0,COUNTIF(V$2:V2,$Q$3:$Q$263),0))} - fandt, at dette virkede fra et andet websted...

Brug Ctrl+Shift+Enter for at få array-funktionen (krøllede klammeparenteser). Træk copy-paste formlerne, indtil #NA vises. Mit datasæt var i kolonne-Q, det blev sammenlignet for at se, om det fandtes i den unikke liste i kolonne-V, som løbende strækker sig langs den samme kolonne.
Denne kommentar blev minimeret af moderatoren på webstedet
God dag.
Angiv venligst alle unikke værdier i kolonne Q med abobv-formlen, og brug derefter hans formel =IF(D2=V1,"Match","No match") for at sammenligne, om de unikke i cilumn Q sammenligner med kolonne V i samme række .
Denne kommentar blev minimeret af moderatoren på webstedet
Hej og tak for din hjælp.

Jeg har brug for præcis denne funktionalitet, men min liste over "unikke værdier" skal strække sig på tværs af kolonner i stedet for rækker, så den udvidede liste ned ad rækkerne vil ikke fungere for mig.

Hvordan kan jeg ændre denne formel for at få listen "unikke værdier" til at udvide sig, når jeg trækker den hen over kolonnerne?

Offset()?
Transponere()?
Indirect() med en streng af absolutte referencer sammenkædet med en reference til kolonnen i stedet for række?


Tak igen!
Denne kommentar blev minimeret af moderatoren på webstedet
Kære Ryan,
Denne formel =IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$2:D2, $B$2:$B$9), 0)),"") + Ctrl + Shift + Enter kan hjælpe dig med at løse problemet.
Se nedenstående skærmbillede:
Denne kommentar blev minimeret af moderatoren på webstedet
Også, uanset årsagen, gav den originale formel:
=IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),"")

returnerer en "cirkulær reference"-advarsel og vil ikke beregne..
Denne kommentar blev minimeret af moderatoren på webstedet
Kære Ryan,
Hvilken Office-version bruger du? Formlen fungerer godt i min Office 2016 og 2013.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har oplevet dette før - min rettelse var, at jeg indtastede formlen i cellen D1 (svarende til det regneark, jeg brugte). Uanset hvilken celle $D:$1 svarer til, skal du indtaste den i cellen nedenfor - D2. Undskyld hvis det ikke er derfor du fik fejlen
Denne kommentar blev minimeret af moderatoren på webstedet
Nogle tips til at få VBA-muligheden til at fungere med Excel 2016 til macOS? Jeg har fulgt trinene; men når jeg kører makroen, sker der intet overhovedet. Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Daer Jones,
Prøv venligst nedenstående VBA-kode og lad mig vide, om det virker for dig. Tak skal du have!

Sub CreateUniqueList()
Dim xRng As Range
Dim xLastRow As Long
Dim xLastRow2 As Long
Dim I som heltal
' Ved fejl Genoptag næste
Set xRng = Application.InputBox("Vælg venligst område:", "Kutools for Excel", Selection.Address, , , , , 8)
Hvis xRng ikke er noget, skal du afslutte 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 til xLastRow2
Hvis ActiveSheet.Range("D2:D" & xLastRow2).Cells(I).Value = "" så
ActiveSheet.Range("D2:D" & xLastRow2).Cells(I).Delete
End If
Næste
End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Crystal,
Jeg forsøger at bruge VB-versionen af ​​listen over unikke værdier og støder på et problem.
Det område, som jeg vil oprette en unik værdikolonne fra, er alle formler, der refererer til forskellige faner.
Hvordan får man værdien til at overføre over i stedet for formlen?
Denne kommentar blev minimeret af moderatoren på webstedet
Kære Mike,
Konverter venligst dine formelreferencer til absolut, og anvend derefter VB-scriptet.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har det samme problem, bortset fra at min formel henviser til kolonnenavne og ikke kan konvertere til absolut.
Hvordan ændrer jeg vba'en til at indsætte værdierne og ikke formlen?
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan ville du tilføje flere kriterier, f.eks. hvis du kun ville tilføje til den dynamiske liste, hvis datoen kun var 9/12?

Jeg prøver "&" i MATCH-formlen, men det virker ikke.

For eksempel baseret på dit eksempel:
=IFERROR(INDEKS($B$2:$B$9, MATCH(0 & B4,COUNTIF($D$1:D1, $B$2:$B$9) & $A$2:$A$9, 0)),"" )
Dette kaster en fejl eller skaber dubletter.

Alternativt har jeg læst, at "+" måske virker, selvom jeg ikke kan få det til at virke. Eller bruger SMALL.

Idéer?
Denne kommentar blev minimeret af moderatoren på webstedet
Kære Zac,
Beklager, jeg kan ikke hjælpe med dette, du kan stille dit spørgsmål i vores forum: https://www.extendoffice.com/forum.html for at få mere Excel-støtte fra vores professionelle.
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan vil du tilføje en anden variabel? For eksempel vil jeg have alle de unikke elementer i én kolonne, der også deler en lignende værdi i en anden kolonne. Forestil dig i dit eksempel en 3. kolonne med titlen "Afdeling", der ville have værdier som produkt, kød osv. Jeg er klar over, at de alle er Producer, men forhåbentlig forstår du min pointe. Vil du ændre CountIF-formlen til en COUNTIFS eller ændrer du den på en anden måde?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej matt
Prøv venligst denne formel =HVIS(ISNA(VLOOKUP(A2,$C$2:$C$13,1,FALSK)),"Ja","").
Antag, at de to sammenlignede lister er kolonne A og kolonne C. Hvis de unikke værdier kun forbliver i kolonne A, men ikke i kolonne C, vil de blive vist Ja i kolonne B; mens hvis der ikke returneres noget i kolonne B, betyder det, at den tilsvarende værdi forbliver i både kolonne A og kolonne C.
Denne kommentar blev minimeret af moderatoren på webstedet
Tak for svaret .. men varmt at trække den unikke værdi ud, hvis den viste JA .. kan du venligst rådgive mig om formlen til at trække den unikke værdi i anden kolonne.
Denne kommentar blev minimeret af moderatoren på webstedet
Hvis jeg gør dette for et tusind rækker excel-ark på den seneste version af Excel på en Mac, vender det aldrig tilbage. Den første række fungerer, men når jeg duplikerer ned, går excel ind i en beregningstilstand, der ikke har returneret værdier i over to timer nu.

Nogen tanker om, hvordan man gør dette for store lister (op til 2k rækker), som vil returnere 50 eller 60 unikke værdier?

Jeg hånede dette i "Numbers"-appen, og det fungerer perfekt der, og det tager kun et par minutter at beregne. Det tager bare så lang tid i Excel, at jeg spekulerer på, om det nogensinde bliver færdigt. Jeg har planer om at lade det "køre" natten over for at se, hvad der vil ske.
Denne kommentar blev minimeret af moderatoren på webstedet
Tjek dine beregningsmuligheder. Den skal indstilles til automatisk. Fil > Indstillinger > Formler > Beregningsindstillinger > Arbejdsbogsberegning (automatisk valg)
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg forsøger at trække formlen ned forbi mine faktiske data, så jeg kan indtaste forskellige størrelser datasæt og ikke skal justere noget. Men den sidste række efter mine faktiske data slutter returnerer altid et "0". Jeg bruger de unikke værdier til noget andet i en tilstødende kolonne, og 0'et får den sidste værdi til at gentages (Når jeg sletter 0'et, gentages værdien ikke længere). Nogen idé om, hvordan man fikser dette? Jeg bruger også Office 365 Business
Denne kommentar blev minimeret af moderatoren på webstedet
Hej tak for din hjælp.
Hvordan kan jeg nu også få mine værdier sorteret alfabetisk? (Jeg ønsker ikke at bruge filteret på mit hovedtabel)
Skal jeg bruge en COUNTIFS i stedet for COUNTIF?
Hjælp venligst
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Alexis,
Jeg kan desværre ikke hjælpe med at sortere den udtrukne værdi alfabetisk på samme tid med formel. Tak for din kommentar.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg bruger den =IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),"") formel, som er fantastisk for én kolonne, men mine data er spredt over en række kolonner og rækker. Kan jeg redigere formlen, så den inkluderer hele området? Mine data lever fra AC4 til AR60...
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg prøver VBA-koden og formlen. Koden VBA fungerer meget godt, men jeg kan ikke beholde en fil med makro. Men problemet er, at jeg ikke kan få formlen til at virke. Havde nogen en idé? tak skal du have
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Charlotte
Tak for din kommentar. Du kan beholde filen med makro til fremtidig brug ved at gemme projektmappen som en Excel-makroaktiveret projektmappe.
For formelproblemet, vil du venligst give et skærmbillede af dine data? Tak for din kommentar.
Denne kommentar blev minimeret af moderatoren på webstedet
mange tak
Denne kommentar blev minimeret af moderatoren på webstedet
hvordan får man vba-koden til at fungere for et område, hvor en anden formel blev brugt? på kolonne BI har man en formel, der henviser til kolonne D og E.
Hvis jeg bruger anvende koden til kolonne L (lad os sige), (naturligvis, korrekt ændring af cellerne i koden) returnerer makroen formlen anvendt på kolonne M og N... Det virker altså, men ikke som jeg vil! Hvordan holder man værdierne i kolonne B? tak
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har mærket, at den 'formule'-metode fungerer ved store datasæt. Et godt alternativ er brugen af ​​en drejetabel. Vælg og kun de rijlabels, du får en liste med unikke værdier. Det kan være, hvad der f.eks. får "(leeg)". Du kan derefter udfiltrere denne. Desværre er det kun på 1 kriterium. Der er også gode løsninger, men det er mere komplekst.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg vil gerne være i stand til at gøre præcis det samme, bortset fra at bruge to separate kolonneområder (B2:B9) samt (D2:D9) er dette muligt?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Anthony,
Du kan placere resultaterne i samme kolonne som de originale data. Såsom kolonne B i dette tilfælde.
Men du skal referere til den øverste celle i resultatcellen i formlen som følger.
=IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($B$11:B11, $B$2:$B$9), 0)),"") + Ctrl + Shift + Enter
Denne kommentar blev minimeret af moderatoren på webstedet
con este procedimiento de filtro se hace de forma muy rapida

1.DA ESTE EJEMPLO los data og remover los duplicados estan en la col A de la fila 59 a la 239
2. se define un criterio de filtrado en este caso en la fila d56 el mismo titulo de la liste a remover duplicados y la d57 la dejo en blanco
3. una vez ejecutado se muestran los data en la fila destino, que en mi caso fue la d59

Range("A59:A239").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _
("D56:D57"), CopyToRange:=Range("D59"), Unique:=True
Der er endnu ingen kommentarer her
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL