Het uitfilteren van unieke waarden uit een kolom met gegevens kan in Excel bijvoorbeeld met matrixformules. Stel een kolom in Excel bevat onderstaande gegevens:
Om nu in kolom B de unieke waarden van de gegevens van kolom A weer te geven, kan gebruik worden gemaakt van de volgende matrixformule in cel B2:
=ALS.FOUT(INDEX(A$2:A$15;VERGELIJKEN(ONWAAR;ISGETAL(VERGELIJKEN(A$2:A$15;$B$1:B1;0));0));"")
Dit is een matrixformule en moet daarom bij het ingeven afgesloten worden met CTRL+SHIFT+ENTER. Daarna verschijnen automatisch accolades om de formule, ten teken dat het om een matrixformule gaat. De formule kan daarna naar beneden gekopieerd worden. Daarna ontstaat het volgende overzicht:
Te zien is dat in kolom B alleen de unieke waarden uit kolom A worden weergegeven.
Korte uitleg
Het gaat om een geneste matrixfunctie waarvan de werking in woorden lastig is uit te leggen. Het komt er in het kort op neer dat de laatste VERGELIJKEN-functie zoekt naar waarden van de bronkolom in de bovenliggende rijen. De eerste VERGELIJKEN-functie zoekt naar de eerste positie, waarop de laatste VERGELIJKEN-functie niets kan vinden en dus ISGETAL onwaar wordt. Vervolgens wordt met de INDEX-functie de waarde van deze positie weergegeven. Als de INDEX-functie een foutmelding geeft omdat alle waarden al gevonden zijn, dan wordt een lege cel weergegeven.
Excel Office 365
In Excel voor Office 365 hoeven normaal gesproken matrix formules niet met CTRL+SHIFT+ENTER afgesloten te worden, maar het mag wel. Daarnaast kan in deze versie de functie UNIEK beschikbaar zijn. Dit is afhankelijk van het type abonnement. Als deze functie beschikbaar is dan kun je in plaats van bovenstaande redelijk complexe matrixformule volstaan met de volgende formule:
=UNIEK(A2:A15)
Unieke waarden weergeven met draaitabel
Ook kan een draaitabel gebruikt worden om unieke waarden weer te geven. Selecteer hiervoor de gegevens in A2:A15 en kies voor invoegen draaitabel. Sleep daarna bij Draaitabelvelden het veld naar RIJEN. Daarna worden de unieke waarden alfabetisch weergegeven met mogelijkheid om dit te filteren. De weergave van het Eindotaal in de draaitabel kan met rechtsklik verwijderd worden. Een nadeel van de draaitabel is dat deze niet automatisch aangepast wordt als de waarden in A2:A15 wijzigen. Dat kan met een macro dan wel weer opgevangen worden, maar dat blijft hier even buiten beschouwing.
Vragen / suggesties
Hopelijk heeft dit artikel geholpen om unieke waarden weer te geven in Excel. Als er verdere vragen over dit onderwerp zijn of suggesties voor verbetering, plaats dan een reactie hieronder.
A b NODIG WIL IK:
1 a 1 a (2x)
2 b 2 b (2x)
3 b 3 c (1x)
4 c 4 d (1x)
5 a
6 d
gauw mogelijk per email? of deze reacties?
let op! excel 2007, sorry ik moet nog later kopen voor hoge versie.
Dank voor deze formule! was precies was ik zocht! Alleen heb ik in mijn geval ook lege cellen omdat de specifieke informatie (nog) niet gekend is. Daardoor geeft de formule ook een '0' weer als unieke waarde. Heb jij een idee waar ik in de formule kan toevoegen dat 0 als waarde niet moet worden weergegeven of omgekeerd, dat een lege cel in de matrix niet moeten worden meegerekend?
Over welke formule van deze pagina gaat jouw vraag precies. Over de eerste lange formule of de 2e korte formule met UNIEK?
=ALS.FOUT(INDEX(A$2:A$15;KLEINSTE(ALS(A$2:A$15"";ALS(ISNB(VERGELIJKEN(A$2:A$15;B$1:B1;0));RIJ(A$2:A$15)-1));1));"")
Jammer genoeg gaat dit mijn petje toch wel wat te boven . Deze formule krijg ik niet direct werkend . Leek wel een error in te zitten in het deel - KLEINSTE(ALS(A$2:A$15""; - de aanhalingstekens leken er teveel aan te zijn. Na wegnemen ervan krijg ik geen resultaten meer.
Kan natuurlijk ook zijn dat ik de formule verkeerd aanpas naar mijn eigen bereiken die dan ook nog eens op een ander tabblad staan ;-). Ook al staat de 0 wat knullig tussen mijn resultaten ben ik al blij dat ik de eerste versie wel werkend kreeg
Ik wou dat ik zo goed was met dergelijke formules
En hoe kan dit bij de korte (UNIEK)versie dan?
0-waarden en lege cellen niet meenemen in de berekening?
Krijg het vooralsnog niet voor elkaar
Bijv.: =FILTER(UNIEK(A1:A100);UNIEK(A 1:A100)>0)
Werkt nu idd met 0-waarden. Echter ik krijg nog steeds lege cellen terug.
Dit wordt wsl. veroorzaakt omdat ik een bereik laat retourneren met formules met mogelijke uitkomst "". (Uitkomst van een als formule met indien niet waar "").
Ben nu aan het proberen met OF functie te nesten, lukt nog niet
Weet niet waar ik de OF functie moet zetten.
Of kan het ook anders?
=FILTER(UNIEK(A1:A100);(UNIEK(A1:A100)>0)*(UNIEK(A1:A100)<>""))
Had ik niet aan gedacht
Ben enorm geholpen , dank hiervoor
ik moet een oefenig uitvoeren op het school waarbij je unieke waarden moet zoeken. Er zijn 3 kolommen en moet per kolom de unieke waarden zoeken. Maar als ik kolom A selecteer en dit uitvoer veranderen tevens ook de andere kolommen ... Hoe kan dit ?
Dus in dit geval =AANTAL.ALS(A$2:A$15;B2)