torsdag 6 december 2018

Jämföra två listor i excel

Det finns många sätt att jämföra data i två tabeller med varandra. Här är en metod som jag ofta brukar använda mig av.


Låt oss säga att vi har en lista med filmtitlar som vi vill jämföra med en annan. I det här fallet har jag tagit John Carpenters filmografi som regissör. Inga konstigheter, källan är wikipedia. Jag lägger den i en egen flik. Specifika flikar för olika information är oftast att föredra. Därifrån länkar man samman alltig i en ”operativ flik” på så sätt kan man ändra i sin masterdata utan att behöva skriva om en massa formler. Vi kallar denna flik för Filmography.



I en annan flik skriver vi vilka av dessa titlar som vi äger på DVD, blu-ray eller annat förmat. Just nu är vi bara intresserade av att jämföra vad vi äger med vad karln har regissörat så format struntar vi i. Låt oss säga att vi äger dessa. Vi kallar fliken för Owned.


Det är viktigt att komma ihåg att formatet måste vara exakt lika som tabellen vi ska jämföra med. Ett mellanslag mer gör att formeln spricker.

Det vi skulle kunna göra är att skriva en enkel lookupformel. Det skulle i det här fallet se ut så här: =VLOOKUP(A1;Owned!A:A;1;FALSE). Det betyder att vi letar upp värdet i cellen A1 i kolumnen A i fliken Owned. Hittar vi en träff kommer innehållet att skrivas till cellen där vi har vår formel.


Ganska enkelt men med ett par nackdelar. För det första blir det lätt rörigt med två kolumner som egentligen säger samma sak. För det andra. Är det rätt fullt med #N/A errors bland datan. För att komma runt det första problemet brukar jag jag bygga till ett vilkorsargument. Jag vill helt enkelt att de titlar jag äger ska stå som ”owned” i kolumn B och inte som titeln. Det jag ber excel göra är helt enkelt att skriva ”owned” om resultatet i vår andra tabell, den med titlarna vi äger, stämmer överens med texten i kolumn A.

=IF(VLOOKUP(A1;Owned!A:A;1;FALSE)=A1;"Owned") Här talar jag om att om resultatet av lookupformeln är samma som den text vi letar efter så ska texten ”Owned” visas. Stämmer det inte överrens ska cellen vara tom. Det ger oss fölande resultat.


Fortfarande är de fula #N/A felen kvar men de ska vi ta bort i nästa steg. Vi instruerar helt enkelt excel att ta bort dem om det visar sig att det blir ett fel. Vi vill kanske inte ta bort alla fel som kan uppstå utan vara dem av #N/A karaktär. Följande tillägg fixar det år oss.

=IFNA(IF(VLOOKUP(A1;Owned!A:A;1;FALSE)=A1;"Owned");"")

Voila!

Inga kommentarer:

Skicka en kommentar