Innehållsförteckning
Det här är den sista delen av Excel-serien om unika värden som visar hur du får en lista med unika värden i en kolumn med hjälp av en formel och hur du kan justera formeln för olika datamängder. Du lär dig också hur du snabbt får en lista med unika värden med hjälp av Excels avancerade filter och hur du kan extrahera unika rader med Duplicate Remover.
I ett par av de senaste artiklarna diskuterade vi olika metoder för att räkna och hitta unika värden i Excel. Om du hade en chans att läsa dessa handledningar vet du redan hur du får en unik eller distinkt lista genom att identifiera, filtrera och kopiera. Men det är lite lång tid, och långt ifrån det enda sättet att extrahera unika värden i Excel. Du kan göra det mycket snabbare genom att använda en speciell formel, och om ett ögonblickJag ska visa dig detta och några andra tekniker.
Tips: För att snabbt få fram unika värden i den senaste versionen av Excel 365 som stöder dynamiska matriser använder du funktionen UNIQUE som förklaras i den ovan länkade handledningen.
Hur man får unika värden i Excel
För att undvika förvirring bör vi först komma överens om vad vi kallar unika värden i Excel. Unika värden är de värden som bara finns i en lista en gång, t.ex:
Om du vill extrahera en lista med unika värden i Excel använder du en av följande formler.
Array formeln för unika värden (fyll i genom att trycka på Ctrl + Shift + Enter ):
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1,$A$2:$A$10) + (COUNTIF($A$2:$A$10, $A$2:$A$10)1), 0)), ""),")
Regelbunden formeln för unika värden (fyll i genom att trycka på Enter):
=IFERROR(INDEX($A$2:$A$10, MATCH(0,INDEX(COUNTIF($B$1:B1, $A$2:$A$10)+(COUNTIF($A$2:$A$10, $A$2:$A$10)1),0,0), 0)), ""))
I ovanstående formler används följande referenser:
- A2:A10 - källförteckningen.
- B1 - den översta cellen i den unika listan minus 1. I det här exemplet börjar den unika listan i B2, och därför anger vi B1 i formeln (B2-1=B1). Om din unika lista börjar t.ex. i cell C3 ändrar du $B$1:B1 till $C$2:C2.
Eftersom formeln hänvisar till cellen ovanför den första cellen i den unika listan, som vanligtvis är kolumnrubriken (B1 i det här exemplet), ska du se till att rubriken har ett unikt namn som inte förekommer någon annanstans i kolumnen.
I det här exemplet extraherar vi unika namn från kolumn A (närmare bestämt från intervallet A2:A20), och följande skärmdump visar hur formeln för matrisen fungerar:
Den detaljerade förklaringen av formelns logik finns i ett separat avsnitt, och så här använder du formeln för att få fram unika värden i dina Excel-arbetsblad:
- Justera en av formlerna enligt ditt dataset.
- Ange formeln i den första cellen i den unika listan (B2 i det här exemplet).
- Om du använder arrayformeln trycker du på Ctrl + Shift + Enter . Om du väljer den vanliga formeln trycker du på Enter som vanligt.
- Kopiera formeln så långt ner som du behöver genom att dra i fyllningshandtaget. Eftersom båda formlerna för unika värden är inkapslade i IFERROR-funktionen kan du kopiera formeln till slutet av tabellen utan att det blir några fel i dina data, oavsett hur få unika värden som har tagits fram.
Hur man får fram distinkta värden i Excel (unika + 1:a duplikat förekomst)
Som du kanske redan har förstått av rubriken till det här avsnittet, tydliga värden i Excel är alla olika värden i en lista, dvs. unika värden och första exemplen av dubbla värden:
För att få en distinkt lista i Excel använder du följande formler.
Array distinkt formel (kräver att du trycker på Ctrl + Shift + Enter ):
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10), 0))), "")
Regelbunden en distinkt formel:
=IFERROR(INDEX($A$2:$A$10, MATCH(0, INDEX(COUNTIF($B$1:B1, $A$2:$A$10), 0, 0), 0), 0)), "")
Var:
- A2:A10 är källförteckningen.
- B1 är cellen ovanför den första cellen i den distinkta listan. I det här exemplet börjar den distinkta listan i cell B2 (det är den första cellen där du skriver in formeln), så du hänvisar till B1.
Extrahera distinkta värden i en kolumn och ignorera tomma celler
Om din källista innehåller tomma celler skulle den distinkta formeln vi just diskuterat ge en nolla för varje tom rad, vilket kan vara ett problem. För att åtgärda detta kan du förbättra formeln ytterligare lite:
Array-formel för att extrahera distinkta värden exklusive blanksteg :
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10&"") + IF($A$2:$A$10="",1,0), 0)), ""), "")
Hämta en lista med tydliga textvärden utan hänsyn till siffror och blanksteg.
På samma sätt kan du få en lista med distinkta värden med undantag för tomma celler och celler med siffror :
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10&"") + IF(ISTEXT($A$2:$A$10)=FALSE,1,0), 0))), "")
Som en snabb påminnelse är A2:A10 källistan i formlerna ovan och B1 är cellen precis ovanför den första cellen i den distinkta listan.
Följande skärmdump visar resultatet av båda formlerna:
Hur du extraherar skilda värden som är skiftlägeskänsliga i Excel
När du arbetar med data som är känsliga för stora och små bokstäver, t.ex. lösenord, användarnamn eller filnamn, kan det hända att du behöver få fram en lista med skilda värden som är känsliga för stora och små bokstäver. Använd följande formel för matrisen, där A2:A10 är källistan och B1 är cellen ovanför den första cellen i listan med skilda värden:
Array-formel för att få fram skilda värden som är känsliga för stora och små bokstäver (kräver att du trycker på Ctrl + Shift + Enter )
=IFERROR(INDEX($A$2:$A$10, MATCH(0, FREQUENCY(IF(EXACT($A$2:$A$10,TRANSPOSE($B$1:B1)), MATCH(ROW($A$2:$A$10), ROW($A$2:$A$10)), ""), MATCH(ROW($A$2:$A$10), ROW($A$2:$A$10)), 0)), ""))
Hur formeln unik/distinkta formel fungerar
Det här avsnittet är särskilt skrivet för de nyfikna och omtänksamma Excel-användare som inte bara vill känna till formeln utan också förstå dess grund och botten.
Det säger sig självt att formlerna för att få fram unika och distinkta värden i Excel varken är triviala eller okomplicerade. Men om du tittar närmare kan du märka att alla formlerna bygger på samma tillvägagångssätt - att använda INDEX/MATCH i kombination med COUNTIF eller COUNTIF + IF-funktioner.
För vår djupgående analys använder vi arrayformeln som extraherar en lista med distinkta värden, eftersom alla andra formler som diskuteras i den här handledningen är förbättringar eller variationer av den här grundläggande formeln:
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10), 0))), "")
Till att börja med kan vi kasta bort den uppenbara IFERROR-funktionen, som används i ett enda syfte för att eliminera #N/A-fel när antalet celler där du har kopierat formeln överskrider antalet distinkta värden i källistan.
Nu ska vi dela upp den centrala delen av vår särskiljande formel:
- COUNTIF(intervall, kriterier) returnerar antalet celler inom ett intervall som uppfyller ett angivet villkor.
I det här exemplet returnerar COUNTIF($B$1:B1, $A$2:$A$10) en matris med 1:or och 0:or beroende på om något av värdena i källistan ($A$2:$A$10) förekommer någonstans i den distinkta listan ($B$1:B1). Om värdet hittas returnerar formeln 1, annars - 0.
I cell B2 blir COUNTIF($B$1:B1, $A$2:$A$10) till:
COUNTIF("Distinct", {"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"})
och återvänder:
{0;0;0;0;0;0;0;0;0}
eftersom ingen av punkterna i källförteckningen ( kriterier ) visas i sortiment där funktionen letar efter en matchning. I det här fallet, sortiment ($B$1:B1) består av en enda post - "Distinct".
MATCH(lookup_value, lookup_array, [match_type])
returnerar den relativa positionen för uppslagsvärdet i matrisen.
I det här exemplet är lookup_value 0, och följaktligen:
MATCH(0,COUNTIF($B$1:B1, $A$2:$A$10), 0)
förvandlas till:
MATCH(0, { 0 ;0;0;0;0;0;0;0;0},0)
och returnerar
eftersom vår MATCH-funktion hämtar det första värdet som är exakt lika med det sökta värdet (som du minns är det sökta värdet 0).
I det här exemplet INDEX($A$2:$A$10, 1)
blir:
INDEX({"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"}, 1)
och returnerar "Ronnie".
När formeln kopieras nedåt i kolumnen expanderar den distinkta listan ($B$1:B1) eftersom den andra cellreferensen (B1) är en relativ referens som ändras beroende på den relativa positionen för den cell där formeln flyttas.
Så när den kopieras till cell B3 kommer COUNTIF($B$1: B1 , $A$2:$A$10) ändras till COUNTIF($B$1: B2 , $A$2:$A$10), och blir:
COUNTIF({"Distinct"; "Ronnie"}, {"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"}), 0)), "")), "")
och återvänder:
{1;0;0;0;0;0;0;0;0}
eftersom en "Ronnie" finns i intervallet $B$1:B2.
Och sedan, MATCH(0,{1; 0 ;0;0;0;0;0;0;0;0;0;0},0) ger 2, eftersom 2 är den relativa positionen för den första 0:an i matrisen.
Och slutligen, INDEX($A$2:$A$10, 2)
returnerar värdet från den andra raden, som är "David".
Tips: Om du vill förstå formelns logik bättre kan du markera olika delar av formeln i formellfältet och trycka på F9 för att se vad en markerad del utvärderas till:
Om du fortfarande har svårt att förstå formeln kan du läsa följande handledning för en detaljerad förklaring av hur INDEX/MATCH-förbindelsen fungerar: INDEX & MATCH as a better alternative to Excel VLOOKUP.
Som redan nämnts bygger de andra formlerna som diskuteras i den här handledningen på samma logik, med bara några få ändringar:
Formeln för unika värden - innehåller ytterligare en funktion COUNTIF som utesluter från den unika listan alla poster som förekommer i källlistan mer än en gång: COUNTIF($A$2:$A$10, $A$2:$A$10)1
.
Formeln för distinkta värden ignorerar tomma celler - här lägger du till en IF-funktion som förhindrar att tomma celler läggs till i listan över distinkta värden: IF($A$2:$A$13="",1,0)
.
Formeln för tydliga textvärden ignorerar siffror - du använder ISTEXT-funktionen för att kontrollera om ett värde är text och IF-funktionen för att avfärda alla andra typer av värden, inklusive tomma celler: IF(ISTEXT($A$2:$A$13)=FALSE,1,0)
.
Extrahera distinkta värden från en kolumn med Excels avancerade filter
Om du inte vill slösa tid på att ta reda på hur formlerna för distinkta värden fungerar, kan du snabbt få fram en lista med distinkta värden med hjälp av det avancerade filtret.
- Välj den datakolumn från vilken du vill extrahera distinkta värden.
- Växla till Uppgifter flik> Sortera & Filtrera gruppen och klicka på Avancerad knapp:
- Kontrollera Kopiera till en annan plats radioknappen.
- I Lista över intervallet och kontrollera att källområdet visas korrekt.
- I Kopiera till rutan , ange den översta cellen i målområdet. Tänk på att du kan kopiera filtrerade data endast till aktivt blad .
- Välj den Endast unika poster
Var uppmärksam på att även om alternativet för det avancerade filtret heter " Endast unika poster ", utvinns det tydliga värden dvs. unika värden och första förekomsten av dubbla värden.
Extrahera unika och distinkta rader med Duplicate Remover
I den sista delen av den här handledningen visar jag dig vår egen lösning för att hitta och extrahera distinkta och unika värden i Excel-ark. Den här lösningen kombinerar mångsidigheten hos Excel-formlerna och enkelheten hos det avancerade filtret. Dessutom ger den ett par unika funktioner, t.ex:
- Hitta och extrahera unika/skilliga rader baserat på värden i en eller flera kolumner.
- Hitta , markera , och kopiera unika värden till vilken annan plats som helst, i samma eller en annan arbetsbok.
Nu ska vi se Duplicate Remover-verktyget i aktion.
Anta att du har en sammanfattningstabell som skapats genom att konsolidera data från flera andra tabeller. Självklart innehåller sammanfattningstabellen många dubbla rader och din uppgift är att extrahera unika rader som endast förekommer i tabellen en gång, eller distinkta rader som innehåller unika och 1:a dubbletter. Oavsett vilket, med tillägget Duplicate Remover är jobbet gjort i 5 snabba steg.
- Markera en cell i källtabellen och klicka på Duplicate Remover på knappen på Uppgifter om Ablebits på fliken Dedupe grupp.
Guiden för borttagning av dubbletter kommer att köras och välja hela tabellen. Klicka bara på Nästa för att gå vidare till nästa steg.
- Unik
- Unika +1:a förekomster (distinkt)
I det här exemplet vill vi utvinna unika rader som endast förekommer i källtabellen en gång, så vi väljer den Unik alternativ:
Tips. Som du kan se i skärmbilden ovan finns det också 2 alternativ för dubbla värden , men tänk på det om du behöver göra avdrag för något annat arbetsblad.
I det här exemplet vill vi hitta unika rader baserat på värden i alla tre kolumnerna ( Beställningsnummer , Förnamn och Efternamn ), därför väljer vi alla.
- Markera unika värden
- Välj unika värden
- Identifiera i en statuskolumn
- Kopiera till en annan plats
Eftersom vi hämtar unika rader väljer du Kopiera till en annan plats och ange sedan exakt var du vill kopiera dem - det aktiva bladet (välj den Anpassad plats och ange den översta cellen i målområdet), nytt arbetsblad eller ny arbetsbok.
I det här exemplet väljer vi det nya arket:
Gillade du det här snabba och enkla sättet att få en lista över unika värden eller rader i Excel? Om så är fallet uppmanar jag dig att ladda ner en utvärderingsversion nedan och ge den ett försök. Duplicate Remover och alla andra tidsbesparande verktyg som vi har ingår i Ultimate Suite for Excel.
Tillgängliga nedladdningar
Hitta unika värden i Excel - exempelarbetsbok (.xlsx-fil)
Ultimate Suite - utvärderingsversion (.exe-fil)