Innehållsförteckning
I handledningen beskrivs hur man får fram unika värden i Excel med hjälp av funktionen UNIQUE och dynamiska matriser. Du lär dig en enkel formel för att hitta unika värden i en kolumn eller rad, i flera kolumner, baserat på villkor och mycket mer.
I de tidigare versionerna av Excel var det en svår utmaning att extrahera en lista med unika värden. Vi har en specialartikel som visar hur du hittar unika värden som bara förekommer en gång, hur du extraherar alla unika objekt i en lista, hur du ignorerar blanksteg med mera. Varje uppgift krävde en kombinerad användning av flera funktioner och en formel för en array med flera rader som bara Excel-gurus kan förstå fullt ut.
Införandet av funktionen UNIQUE i Excel 365 har förändrat allt! Det som tidigare var en raketforskning blir lika enkelt som ABC. Nu behöver du inte vara en formelexpert för att få fram unika värden från ett intervall, baserat på ett eller flera kriterier, och ordna resultaten i alfabetisk ordning. Allt görs med enkla formler som alla kan läsa och justera för dina egna behov.
Excel UNIQUE-funktionen
Funktionen UNIQUE i Excel returnerar en lista med unika värden från ett intervall eller en matris och fungerar med alla datatyper: text, siffror, datum, tider osv.
Funktionen kategoriseras under Dynamic Arrays-funktioner. Resultatet är en dynamisk matris som automatiskt sprider sig vertikalt eller horisontellt i de angränsande cellerna.
Syntaxen för Excel-funktionen UNIQUE är följande:
UNIQUE(array, [by_col], [exactly_once])Var:
Array (obligatoriskt) - det intervall eller den matris från vilken unika värden ska returneras.
By_col (valfritt) - ett logiskt värde som anger hur data ska jämföras:
- TRUE - jämför data mellan kolumnerna.
- FALSE eller utelämnas (standard) - jämför data mellan rader.
Exactly_once (valfritt) - ett logiskt värde som definierar vilka värden som anses vara unika:
- TRUE - returnerar värden som endast förekommer en gång, vilket är databasens begrepp för unikt.
- FALSE eller utelämnas (standard) - returnerar alla distinkta (olika) värden i intervallet eller matrisen.
Observera: För närvarande är funktionen UNIQUE endast tillgänglig i Excel för Microsoft 365 och Excel 2021. Excel 2019, 2016 och tidigare har inte stöd för formler för dynamiska matriser, så funktionen UNIQUE är inte tillgänglig i dessa versioner.
Grundläggande UNIQUE-formel i Excel
Nedan följer en formel för Excel unika värden i sin enklaste form.
Målet är att extrahera en lista med unika namn från intervallet B2:B10. För detta skriver vi in följande formel i D2:
=UNIK(B2:B10)
Observera att det andra och tredje argumentet utelämnas eftersom standardvärdena fungerar perfekt i vårt fall - vi jämför raderna mot varandra och vill returnera alla olika namn i intervallet.
När du trycker på Enter för att slutföra formeln kommer Excel att skriva ut det första funna namnet i D2, och de andra namnen hamnar i cellerna nedanför. Resultatet är att du har alla unika värden i en kolumn:
Om dina data är över kolumnerna från B2 till I2, sätt det andra argumentet till TRUE för att jämföra kolumnerna mot varandra:
=UNIQUE(B2:I2,TRUE)
Skriv ovanstående formel i B4, tryck på Enter och resultatet kommer att spridas horisontellt till cellerna till höger. Du får alltså de unika värdena på en rad:
Tips: Om du vill hitta unika värden i en matris med flera kolumner och returnera dem i en kolumn eller rad använder du UNIQUE tillsammans med TOCOL- eller TOROW-funktionen enligt nedanstående exempel:
- Extrahera unika värden från ett intervall med flera kolumner till en kolumn
- Dra unika värden från ett intervall med flera kolumner till en rad
Excel UNIQUE-funktionen - tips och anteckningar
UNIQUE är en ny funktion och liksom andra funktioner för dynamiska matriser har den några särskilda egenskaper som du bör känna till:
- Om matrisen som returneras av UNIQUE är slutresultatet (dvs. inte skickas till en annan funktion), skapar Excel dynamiskt ett lämpligt stort intervall och fyller det med resultaten. Formeln behöver endast anges i en cell Det är viktigt att du har tillräckligt många tomma celler nedanför och/eller till höger om den cell där du skriver in formeln, annars uppstår felet #SPILL.
- Resultat uppdateras automatiskt när källdata ändras. Nya poster som läggs till utanför den refererade matrisen inkluderas dock inte i formeln om du inte ändrar matris referens. Om du vill ha matris för att reagera automatiskt på omdimensioneringen av källområdet, konvertera området till en Excel-tabell och använd strukturerade referenser eller skapa ett dynamiskt namngivet område.
- Dynamiska matriser mellan olika Excel-filer fungerar endast när båda arbetsböckerna är öppna Om källarbetsboken är stängd kommer en länkad UNIQUE-formel att returnera ett #REF!-fel.
- Liksom andra dynamiska array-funktioner kan UNIQUE endast användas inom en normal sortiment När den placeras i Excel-tabeller returnerar den ett #SPILL!-fel.
Hur man hittar unika värden i Excel - exempel på formler
Nedanstående exempel visar några praktiska användningsområden för funktionen UNIQUE i Excel. Huvudtanken är att på enklast möjliga sätt få fram unika värden eller ta bort dubbletter, beroende på vad du vill.
Extrahera unika värden som bara förekommer en gång
Om du vill få en lista med värden som förekommer exakt en gång i det angivna intervallet ställer du in det tredje argumentet för UNIQUE till TRUE.
Om du till exempel vill ta fram namnen på vinnarlistan en gång använder du följande formel:
=UNIQUE(B2:B10,,TRUE)
Där B2:B10 är källområdet och det andra argumentet ( by_col ) är FALSK eller utelämnas eftersom våra uppgifter är organiserade i rader.
Hitta distinkta värden som förekommer mer än en gång
Om du har ett motsatt mål, dvs. om du vill få fram en lista med värden som förekommer mer än en gång i ett visst intervall, använd då funktionen UNIQUE tillsammans med FILTER och COUNTIF:
UNIQUE(FILTER( sortiment , COUNTIF( sortiment , sortiment )>1))Om du till exempel vill extrahera olika namn som förekommer mer än en gång i B2:B10 kan du använda den här formeln:
=UNIQUE(FILTER(B2:B10, COUNTIF(B2:B10, B2:B10)>1))
Hur denna formel fungerar:
FILTER-funktionen, som är kärnan i formeln, filtrerar bort dubbla poster baserat på antalet förekomster som returneras av COUNTIF-funktionen. I vårt fall är resultatet av COUNTIF denna matris av antal:
{4;1;3;4;4;1;3;4;3}
Jämförelseoperationen (>1) ändrar arrayen ovan till värden TRUE (sant) och FALSE (falskt), där TRUE (sant) representerar de objekt som förekommer mer än en gång:
{SANN;FALSKT;SANT;SANT;SANT;SANT;SANT;FALSKT;SANT;SANT;SANT;SANT;SANT}
Denna matris överlämnas till FILTER som den . som talar om för funktionen vilka värden som ska ingå i den resulterande matrisen:
{"Andrew"; "David"; "Andrew"; "Andrew"; "Andrew"; "David"; "Andrew"; "David"}
Som du kan se är det bara de värden som motsvarar TRUE som överlever.
Ovanstående matris går till matris argumentet UNIQUE, och efter att ha tagit bort dubbletter visas slutresultatet:
{"Andrew"; "David"}
Tips: På samma sätt kan du filtrera unika värden som förekommer mer än två gånger (>2), mer än tre gånger (>3) etc. För detta ändrar du helt enkelt siffran i den logiska jämförelsen.
Hitta unika värden i flera kolumner (unika rader)
Om du vill jämföra två eller flera kolumner och återge de unika värdena mellan dem, inkludera alla målkolumner i matris argument.
Om vi till exempel vill få fram det unika förnamnet (kolumn A) och efternamnet (kolumn B) för vinnarna skriver vi in den här formeln i E2:
=UNIK(A2:B10)
Om du trycker på Enter-knappen får du följande resultat:
För att få unika rader , dvs. de poster som har den unika kombinationen av värden i kolumnerna A, B och C, är detta den formel som ska användas:
=UNIK(A2:C10)
Förvånansvärt enkelt, eller hur? :)
Få en lista med unika värden sorterade i alfabetisk ordning.
Hur brukar du sortera i alfabetisk ordning i Excel? Just det, genom att använda den inbyggda funktionen Sortera eller Filtrera. Problemet är att du måste sortera om varje gång dina källdata ändras, för till skillnad från Excel-formler som räknas om automatiskt vid varje ändring i arbetsbladet, måste funktionerna tillämpas manuellt.
Med införandet av dynamiska array-funktioner har detta problem försvunnit! Vad du behöver göra är att helt enkelt förvränga SORT-funktionen runt en vanlig UNIQUE-formel, som här:
SORT(UNIQUE(array))Om du till exempel vill ta fram unika värden i kolumnerna A till C och ordna resultaten från A till Z använder du den här formeln:
=SORT(UNIK(A2:C10))
Jämfört med exemplet ovan är resultatet mycket lättare att uppfatta och arbeta med. Vi kan till exempel tydligt se att Andrew och David har varit vinnare i två olika sporter.
Tips: I det här exemplet har vi sorterat värdena i den första kolumnen från A till Z. Detta är standardvärdena för funktionen SORT, och därför kan den valfria sort_index och sort_order argumenten utelämnas. Om du vill sortera resultaten efter någon annan kolumn eller i en annan ordning (från Z till A eller från högst till lägst) anger du det andra och tredje argumentet enligt förklaringen i handledningen för funktionen SORT.
Hitta unika värden i flera kolumner och sammanfoga dem i en cell
När du söker i flera kolumner, ger Excel-funktionen UNIQUE som standard ut varje värde i en separat cell. Kanske tycker du att det är bekvämare att ha resultaten i en enda cell?
I stället för att referera till hela intervallet kan du använda ampersand (&) för att sammanfoga kolumnerna och sätta önskad avgränsare emellan.
Som exempel sammanfogar vi förnamnen i A2:A10 och efternamnen i B2:B10 och separerar värdena med ett mellanslag (" "):
=UNIQUE(A2:A10&" "&B2:B10)
Resultatet är en lista med fullständiga namn i en kolumn:
Hämta en lista med unika värden baserat på kriterier
Om du vill extrahera unika värden med villkor använder du Excel-funktionerna UNIQUE och FILTER tillsammans:
- FILTER-funktionen begränsar data till värden som uppfyller villkoret.
- Funktionen UNIQUE tar bort dubbletter från den filtrerade listan.
Här är den generiska versionen av formeln för filtrerade unika värden:
UNIQUE(FILTER(array, kriterier_intervall = kriterier ))I det här exemplet ska vi ta fram en lista över vinnare i en viss sport. Till att börja med skriver vi in den aktuella sporten i en cell, till exempel F1. Sedan använder vi nedanstående formel för att få fram de unika namnen:
=UNIQUE(FILTER(A2:B10, C2:C10=F1))
Där A2:B10 är ett intervall för att söka efter unika värden och C2:C10 är ett intervall för att kontrollera kriterierna.
Filtrera unika värden baserat på flera kriterier
Om du vill filtrera unika värden med två eller flera villkor använder du uttrycken som visas nedan för att skapa de nödvändiga kriterierna för funktionen FILTER:
UNIQUE(FILTER(array, ( kriterier_område1 = kriterier1 ) * ( kriterier_område2 = kriterier2 )))Resultatet av formeln är en lista med unika poster för vilka alla de angivna villkoren är SANNA. I Excel kallas detta för AND-logik.
För att se hur formeln fungerar kan vi ta fram en lista över unika vinnare för sporten i G1 (kriterium 1) och under åldern i G2 (kriterium 2).
Med källområdet i A2:B10, sport i C2:C10 (criteria_range 1) och åldrar i D2:D10 (criteria_range 2) får formeln följande form:
=UNIQUE(FILTER(A2:B10, (C2:C10=G1) * (D2:D10
Den ger exakt de resultat som vi söker:
Hur denna formel fungerar:
Här är en förklaring på hög nivå av formelns logik:
I . argumentet för FILTER-funktionen anger du två eller flera intervall/kriteriepar. Resultatet av varje logiskt uttryck är en matris med TRUE- och FALSE-värden. Multiplikationen av matriserna omvandlar de logiska värdena till siffror och ger en matris med 1:or och 0:or. Eftersom multiplikation med noll alltid ger noll, är det bara de poster som uppfyller alla villkor som har 1 i den slutliga matrisen. FILTERfunktionen filtrerar bort de objekt som motsvarar 0 och överför resultaten till UNIQUE.
Mer information finns i FILTER med flera kriterier med AND-logik.
Filtrera unika värden med flera OR-kriterier
Om du vill få en lista med unika värden baserat på flera OR-kriterier, dvs. när det ena OR-kriteriet är VARA, adderar du de logiska uttrycken i stället för att multiplicera dem:
UNIQUE(FILTER(array, ( kriterier_område1 = kriterier1 ) + ( kriterier_område2 = kriterier2 )))Om du till exempel vill visa vinnarna i antingen Fotboll eller . Ishockey kan du använda den här formeln:
=UNIQUE(FILTER(A2:B10, (C2:C10="Fotboll") + (C2:C10="Hockey")))
Om det behövs kan du naturligtvis ange kriterierna i separata celler och hänvisa till dessa celler på följande sätt:
=UNIQUE(FILTER(A2:B10, (C2:C10=G1) + (C2:C10=G2)))
Hur denna formel fungerar:
Precis som när du testar flera AND-kriterier placerar du flera logiska uttryck i . argumentet för FILTER-funktionen, som var och en returnerar en matris med TRUE- och FALSE-värden. När dessa matriser adderas får de objekt för vilka ett eller flera kriterier är TRUE 1 och de objekt för vilka alla kriterier är FALSE 0. Resultatet är att alla poster som uppfyller ett enda villkor hamnar i den matris som överlämnas till UNIQUE.
Mer information finns i FILTER med flera kriterier med OR-logik.
Få unika värden i Excel som ignorerar blanksteg
Om du arbetar med en datamängd som innehåller vissa luckor kommer en lista över unika som erhålls med en vanlig formel sannolikt att ha en tom cell och/eller ett nollvärde. Detta händer eftersom Excel-funktionen UNIQUE är utformad för att returnera alla distinkta värden i ett intervall, inklusive tomma celler. Så om ditt källområde har både nollor och tomma celler kommer listan över unika att innehålla två nollor, varav en representerar en tom cell.Om källdata dessutom innehåller tomma strängar som returneras av någon formel kommer uique-listan också att innehålla en tom sträng ("") som visuellt ser ut som en tom cell:
Så här gör du för att få en lista med unika värden utan blanksteg:
- Filtrera bort tomma celler och tomma strängar med hjälp av funktionen FILTER.
- Använd funktionen UNIQUE för att begränsa resultaten till endast unika värden.
I generisk form ser formeln ut på följande sätt:
UNIQUE(FILTER( sortiment , sortiment ""))I detta exempel är formeln i D2 följande:
=UNIQUE(FILTER(B2:B12, B2:B12""))
Resultatet är att Excel returnerar en lista med unika namn utan tomma celler:
Observera: Om de ursprungliga uppgifterna innehåller nollor kommer ett nollvärde att ingå i den unika listan.
Hitta unika värden i specifika kolumner
Ibland vill du kanske extrahera unika värden från två eller flera kolumner som inte ligger bredvid varandra. Ibland vill du kanske också ordna om kolumnerna i den resulterande listan. Båda uppgifterna kan utföras med hjälp av CHOOSE-funktionen.
UNIK(VÄLJ({1,2,...}, intervall1 , intervall2 ))Anta att du vill få fram en lista över vinnare utifrån värdena i kolumnerna A och C och ordna resultaten i denna ordning: först en sport (kolumn C) och sedan ett namn på en idrottsman (kolumn A). För att göra detta konstruerar vi denna formel:
=UNIQUE(CHOOSE({1,2}, C2:C10, A2:A10))
Jag får följande resultat:
Hur denna formel fungerar:
CHOOSE-funktionen returnerar en tvådimensionell matris med värden från de angivna kolumnerna. I vårt fall byter den också ut ordningen på kolumnerna.
{"Basket", "Andrew"; "Basket", "Betty"; "Volleyboll", "David"; "Basket", "Andrew"; "Hockey", "Andrew"; "Fotboll", "Robert"; "Volleyboll", "David"; "Hockey", "Andrew"; "Basket", "David"}
Från matrisen ovan returnerar funktionen UNIQUE en lista med unika poster.
Hitta unika värden och hantera fel
De unika formlerna som vi har diskuterat i den här handledningen fungerar perfekt... förutsatt att det finns minst ett värde som uppfyller de angivna kriterierna. Om formeln inte hittar någonting uppstår ett #CALC!-fel:
För att förhindra detta är det bara att använda IFERROR-funktionen i formeln.
Om inga unika värden som uppfyller kriterierna hittas kan du till exempel inte visa något, dvs. en tom sträng (""):
=IFERROR(UNIQUE(FILTER(A2:B10, (C2:C10=G1) * (D2:D10
Eller så kan du tydligt informera dina användare om att inga resultat har hittats:
=IFERROR(UNIQUE(FILTER(A2:B10, (C2:C10=G1) * (D2:D10
Excel UNIQUE-funktionen fungerar inte
Som du har sett har UNIQUE-funktionen gjort det otroligt enkelt att hitta unika värden i Excel. Om din formel plötsligt ger ett fel är det troligen något av följande.
#NAME? fel
Detta inträffar om du använder en UNIQUE-formel i en Excel-version där denna funktion inte stöds.
För närvarande är funktionen UNIKT endast tillgänglig i Excel 365 och 2021. Om du har en annan version kan du hitta en lämplig lösning i den här handledningen: Hur man får unika värden i Excel 2019, Excel 2016 och tidigare.
Felet #NAME? i versioner som stöds indikerar att funktionens namn är felstavat.
#SPILL fel
Uppstår om en eller flera celler i spillområdet inte är helt tomma.
För att åtgärda felet är det bara att rensa eller ta bort celler som inte är tomma. Om du vill se exakt vilka celler som är i vägen klickar du på felindikatorn och sedan på Välj hindrande celler För mer information, se #SPILL! fel i Excel - orsaker och lösningar.
Så här hittar du unika värden i Excel. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!
Arbetsbok för övning för nedladdning
Exempel på Excel-formler för unika värden (.xlsx-fil)