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

Hur extraherar jag unika värden från flera kolumner i Excel?

Om du antar att du har flera kolumner med flera värden, upprepas vissa värden i samma kolumn eller olika kolumn. Och nu vill du bara hitta de värden som finns i endera kolumnen en gång. Finns det några snabba knep för att extrahera unika värden från flera kolumner i Excel?


Extrahera unika värden från flera kolumner med matrisformel

Här är en matrisformel som också kan hjälpa dig att extrahera unika värden från flera kolumner.

1. Förutsatt att dina värden ligger inom intervallet A2: C9, ange följande formel i cell E2:

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""

Anmärkningar: I ovanstående formel, A2: C9 anger det cellintervall som du vill extrahera de unika värdena, E1: E1 är den första cellen i kolumnen du vill placera resultatet, $ 2: $ 9 står för raderna innehåller cellerna du vill använda, och $ A: $ C anger att kolumnerna innehåller de celler du vill använda. Ändra dem till dina egna.

2. Tryck sedan på Skift + Ctrl + Enter och dra sedan i fyllningshandtaget för att extrahera de unika värdena tills tomma celler visas. Se skärmdump:


Extrahera unika värden från flera kolumner med pivottabellen

Om du är bekant med pivottabellen kan du enkelt extrahera de unika värdena från flera kolumner med följande steg:

1. Först ska du infoga en ny tom kolumn till vänster om dina data. I det här exemplet infogar jag kolumn A bredvid originaldata.

2. Klicka på en cell i dina data och tryck på Alt + D och tryck sedan på P knappen omedelbart för att öppna Pivottabell och PivotChart-guidenväljer Flera konsolideringsområden i guiden steg 1, se skärmdump:

3. Klicka sedan Nästa knappen, kolla Skapa ett enda sidfält åt mig alternativ i guiden steg 2, se skärmdump:

4. Fortsätt klicka Nästa klicka för att välja dataintervall som inkluderar den vänstra nya kolumnen med celler och klicka sedan på Lägg till för att lägga till dataområdet till Alla intervall listruta, se skärmdump:

5. När du har valt dataområdet fortsätter du att klicka Nästa, i guiden steg 3, välj var du vill placera pivottabellrapporten som du vill.

6. Äntligen klickar du på Finish för att slutföra guiden och en pivottabell har skapats i det aktuella kalkylbladet och avmarkera sedan alla fält från Välj fält att lägga till i rapporten avsnitt, se skärmdump:

7. Kontrollera sedan fältet Värde eller dra värdet till rader etikett, nu får du de unika värdena från flera kolumner enligt följande:


Extrahera unika värden från flera kolumner med VBA-kod

Med följande VBA-kod kan du också extrahera unika värden från flera kolumner.

1. Håll ner ALT + F11 knapparna och det öppnar Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i modulfönstret.

VBA: Extrahera unika värden från flera kolumner

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3. Tryck sedan på F5 för att köra den här koden, och en snabbruta dyker upp för att påminna dig om att välja det dataområde som du vill använda. Se skärmdump:

4. Och klicka sedan på OK, kommer en annan rutan att visas för att låta dig välja en plats att placera resultatet, se skärmdump:

5. Klicka OK för att stänga denna dialog och alla unika värden har extraherats på en gång.


Extrahera unika värden från en enda kolumn med en fantastisk funktion

Ibland måste du extrahera de unika värdena från en enda kolumn, ovanstående metoder hjälper dig inte, här kan jag rekommendera ett användbart verktyg-Kutools för Excel, med dess Extrahera celler med unika värden (inkludera den första duplikaten) verktyget kan du snabbt extrahera de unika värdena.

Notera:Att tillämpa detta Extrahera celler med unika värden (inkludera den första duplikaten)För det första bör du ladda ner Kutools för Excel, och använd sedan funktionen snabbt och enkelt.

När du har installerat Kutools för Excel, gör så här:

1. Klicka på en cell där du vill mata ut resultatet. (Anmärkningar: Klicka inte på en cell i första raden.)

2. Klicka sedan Kutools > Formel Helper > Formel Helper, se skärmdump:

3. I Formlerhjälpare dialogrutan, gör följande:

  • Välja text alternativ från Formel Typ rullgardinsmeny;
  • Sedan Välj Extrahera celler med unika värden (inkludera den första duplikaten) från Välj en fromula listruta;
  • I den högra Argumentinmatning Välj en lista med celler som du vill extrahera unika värden.

4. Klicka sedan Ok och dra påfyllningshanteraren över till cellerna som du vill lista alla unika värden tills tomma celler visas, se skärmdump:

Gratis nedladdning Kutools för Excel nu!


Fler relativa artiklar:

  • Räkna antalet unika och distinkta värden från en lista
  • Om du antar att du har en lång lista med värden med några dubbletter, nu vill du räkna antalet unika värden (värdena som visas i listan bara en gång) eller distinkta värden (alla olika värden i listan betyder det unikt värden + 1: a dubbla värden) i en kolumn som vänster skärmdump visas. Den här artikeln kommer jag att prata om hur man hanterar detta jobb i Excel.
  • Extrahera unika värden baserat på kriterier i Excel
  • Om du antar att du har följande dataintervall som du bara vill lista de unika namnen på kolumn B baserat på ett specifikt kriterium i kolumn A för att få resultatet enligt nedanstående skärmdump. Hur kan du hantera den här uppgiften i Excel snabbt och enkelt?
  • Tillåt bara unika värden i Excel
  • Om du bara vill behålla unika värden i en kolumn i kalkylbladet och förhindra dubbletter, kommer den här artikeln att presentera några snabba knep för dig att hantera den här uppgiften.
  • Summa unika värden baserade på kriterier i Excel
  • Till exempel har jag en rad data som innehåller kolumnerna Namn och ordning, nu för att bara summera unika värden i kolumnen Order baserat på kolumnen Namn enligt följande skärmdump. Hur löser jag den här uppgiften snabbt och enkelt i Excel?

De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (31)
Klassad 5 av 5 · 1 betyg
Denna kommentar minimerades av moderatoren på webbplatsen
Is this formula complete? =INDIRECT(TEXT(MIN(IF(($A$2:$C$9"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&"",
Denna kommentar minimerades av moderatoren på webbplatsen
Detta är inte fixat än :sad:
Denna kommentar minimerades av moderatoren på webbplatsen
vilket slöseri med tid..... formel fungerar INTE
Denna kommentar minimerades av moderatoren på webbplatsen
Tack!!! Jag har ägnat timmar åt att försöka göra detta och ta reda på vad som hände med Pivot Wizard (annan artikel).
Denna kommentar minimerades av moderatoren på webbplatsen
Jag använder din VBA-kod, men vill inte att rutan ska dyka upp. Istället vill jag definiera exakt vilket cellområde som ska användas varje gång och exakt vilken ruta som ska läggas ut i. Ingångsområdet och utdata skulle vara på två olika ark. hur uppdaterar jag VBA för att göra det? Tack!!
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå! Vet någon varför denna formel verkar leda till ett fel efter rad 87? Som, det fungerar perfekt och sedan vid en viss punkt returnerar det bara fel för varje rad.. vilket är det värsta! För jag är så nära precis vad jag behöver här...
Denna kommentar minimerades av moderatoren på webbplatsen
=INDIRECT(TEXT(MIN(IF(($A$2:$C$9"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&"" It doesn't work
Denna kommentar minimerades av moderatoren på webbplatsen
hej jag vill extrahera unika celler från första kolumnen när jag jämför den med en annan kolumn (jag har tre olika kolumner), hur kan jag göra det?
Denna kommentar minimerades av moderatoren på webbplatsen
hej jag har tre olika kolumner och vill extrahera unika celler i första kolumnen. hur kan jag göra det?? Tack på förhand
Denna kommentar minimerades av moderatoren på webbplatsen
jag älskar

Extrahera unika värden från flera kolumner med pivottabell
Denna kommentar minimerades av moderatoren på webbplatsen
Kan du skicka in rätt formel... VBA-funktionen fungerar utmärkt.
Bara för mitt projekt använder jag hellre rätt formel.


Tack
Denna kommentar minimerades av moderatoren på webbplatsen
vet någon, för utdata, hur man gör det till flera rader men inte till en rad? (för närvarande uppnås en rad resultat av workheetfunction.transpose, men vad jag vill uppnå (som ett resultat) är att när man väljer för 3 kolumner, är det returnerade resultatet också 3 kolumner, istället en
Denna kommentar minimerades av moderatoren på webbplatsen
Denna matrisformel är KORREKT. Data i kolumnerna A till C, första resultatformeln i cell D2... Den här skiljer sig från andra matrisformler, den senare är kopiera formeln ner och Ctrl+Skift+Retur alla formel. Denna matrisformel bör dock göras med Ctrl+Skift+Enter i första cellen och kopiera ner.
Denna kommentar minimerades av moderatoren på webbplatsen
Mycket tack för makron!!! me fue muy util
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har justerat till mitt ark men returnerar bara det första värdet i den definierade arrayen... vad saknar jag?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Cody,
Ovanstående formel fungerar bra i mitt kalkylblad, kan du ge en skärmdump av ditt dataproblem här?
Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Angående formelversionen, kan du förklara mer detaljerat vad den här delen gör? *100+COLUMN($A:$C),7^8)),"R0C00") Specifikt, vad är det * 100, 7 ^ 8och "R0C000" håller på med? Jag förstår allt annat, men jag kan inte lista ut vad dessa är till för.
Denna kommentar minimerades av moderatoren på webbplatsen
Lite sent med mitt svar här men...
ROW($2:$9)*100 - detta är att multiplicera radnumret *100, så om det är på rad 5, är nu talet 500
KOLUMN($A:$C) - detta läggs till rad*100-numret, så om det är rad 5 kol 2, så är talet 502.
7^8)), - detta (tror jag) är att ha ett maxvärde för min-satsen från tidigare.
"R0C00") - detta formaterar texten baserat på numret. I exemplet hade vi 502 så detta ger R5C02 (rad 5, kol 02).

Om du har många kolumner men inte många rader kan du ändra det till ROW($2:$9)*1000+KOLUMN($A:$C),7^8)),"R0C000")
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för koden. Jag använder VBA-koden för den här sidan. Finns det något sätt att lägga till en sorteringskod efter att de unika värdena har extraherats så att den sorterar den automatiskt?
Denna kommentar minimerades av moderatoren på webbplatsen
kan vi skapa uniqdata-funktion istället för makro?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, İlhan, Om du gillar en användardefinierad funktion för att skapa en formel för att lösa detta problem, kan koden nedan hjälpa dig: När du har infogat koden väljer du en lista med celler där du vill placera resultaten. Skriv sedan denna formel:=Unik(A1:C4)  i formelfältet.Tryck Ctrl + Skift + Enter nycklar tillsammans. 


Function Uniques(ByVal inputRange As Range)
Dim inputArray As Variant
Dim myColl As New Collection
Dim xVal As Variant
Dim outArray() As Variant
On Error Resume Next
With inputRange
inputArray = Application.Intersect(.Cells, .Parent.UsedRange).Value
End With
On Error GoTo 0
On Error Resume Next
For Each xVal In inputArray
myColl.*** Item:=xVal, Key:=(CStr(xVal) & TypeName(xVal))
Next xVal
myColl.Remove "String"
On Error GoTo 0
ReDim outArray(1 To Application.Max(myColl.Count, Application.Caller.Cells.Count))
For xVal = 1 To UBound(outArray)
outArray(xVal) = vbNullString
Next xVal
For xVal = 1 To Application.Min(myColl.Count, Application.Caller.Cells.Count)
outArray(xVal) = myColl(xVal)
Next xVal
If Application.Caller.Columns.Count = 1 Then
Uniques = Application.Transpose(outArray)
Else
Uniques = outArray
End If
End Function
Denna kommentar minimerades av moderatoren på webbplatsen
Czy till żart?
Denna kommentar minimerades av moderatoren på webbplatsen
Matrisformeln längst upp fungerar utmärkt när den används med data i samma ark, men när jag försöker använda den för att referera till exakt samma data från ett annat ark returnerar formeln ingenting. Jag kan inte förstå varför. Finns det en begränsning med arrayfunktioner som hindrar dig från att referera till intervall i ett annat ark?

Tack för alla insikter du kan ge.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Erin,

Glad att hjälpa till. Den INDIREKTA funktionen i den här formeln är mer komplicerad att använda när man refererar till data i andra kalkylblad. Det rekommenderas inte att använda den här funktionen när du refererar till intervall i olika kalkylblad.

Till exempel: Nu finns data i Sheet1, jag vill referera till innehållet i cell C2 i Sheet1 i Sheet2. Först, i två valfria celler i Blad2, som D1 och D2, anger du Blad1 respektive C2. Ange nu formeln i den tomma cellen i Blad2:
=INDIREKT("'"&D1&"'!"&D2), då kan innehållet i cell C2 i Blad1 returneras.

Som du kan se gör det saker mycket mer komplicerade. Hoppas min förklaring kan hjälpa. Ha en bra dag.

Vänliga hälsningar,
Mandy
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Sir! VBA gjorde underverk, tack så mycket för det! Jag undrade, om jag ändrar originaldata, är det möjligt att uppdatera kolumnen med de unika värdena automatiskt?
Klassad 5 av 5
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Ioannis,

Glad att hjälpa till. När du har ändrat originaldata kan VBA inte uppdatera resultatet automatiskt. Och det enklaste sättet jag kan tänka mig är att trycka på Ctrl + Alt + F9 för att uppdatera alla resultat i kalkylblad i alla öppna arbetsböcker. Ha en bra dag.

Vänliga hälsningar,
Mandy
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för den här fantastiska artikeln.

För personer som använder matrisformel i icke-engelska Excel det måste tas särskild hänsyn till textformatsträngen: i ditt exempel: "R0C00".
För tyska skulle detta översättas till "Z0S00". Men "S" är ett specialtecken som hänvisar till sekunder för tidsformatering. Detta tecken måste escapes och därför är den korrekta formatsträngen för tyska Excel "Z0\S00".

Jag hoppas att detta hjälper någon i framtiden :-)
Det finns inga kommentarer här ännu
Ladda fler
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL