söndag 9 december 2018

Använda SEARCH för att dela upp i categorier

I det här exemplet har jag skapat ett antal felkoder. Inte sällan finns det en sträng som är tämligen lika medan det finns en avvikande kombination av tecken någonstans. I exemplet jag har skapat är den gemensamma strängen omgiven av lite slumpmässiga siffror. Det ser inte helt olikt ut från verkligheten faktiskt.


Nu vill jag kunna pivotera det där. Men eftersom det är tilldynes en enda röra måste jag ordna reda ur kaoset. Jag brukar göra så här.

Först tar jag reda på de statiska strängerna som finns i mitt data
·       - Sedan ordnar jag det med att skriva en och en av dessa stränger överst i kolumnerna till höger.

Det blir ungefär så här:


Nästa steg blir att skapa en formel som tala om vilka rader som ska ingå i varje kolumn. Vi vill alltås indikera alla rader som innhåller ”Fel Siffror” i kolumn B etc. Enbart en IF formel hjälper oss inte eftersom den då kommer att leta exakt efter ”Fel Siffor” och inte få en enda träff. Formeln =IF(A2=B1;TRUE;FALSE) där vi jämför A2 med B1 måste därför utökas och förändras lite.
Först lägger vi till SEARCH i formeln. Det är en funktion som leter inne i texten efter en textsträng vi säger åt den att leta efter. I det här fallet innehållet i B1.

=IF(SEARCH(B1;A2);TRUE;FALSE) ger oss värdet True om värdet i B1 finns i A2. Men för att kunna fylla formeln till höger och nedåt måste vi lägga in lite $ i formeln. Dollartecken låser relativa formler till absoluta. Vi sätter markören mitt i vår cell referens och trycker på F4. Nu kommer vi att bläddra genom tre val: $B$1, B$1 och $B1. Beroende på hur vi vill låsa cellen som väljer vi ett av dessa. $B$1 motsvarar den exakta cellen hur vi än fyller formeln i de andra fälten. B$1 behåller formeln på första raden och $B1 i första kolumnen. 

I det här fallet vill vi behålla oss på första raden och första kolumen när vi fyller ut formeln. Det blir alltså =IF(SEARCH(B$1;$A2);TRUE;FALSE). Vi får ett resultat som ser ut i den här stilen. Det vill vi förstås snygga till och se till att vi kan räkna på värdena.


Istället för TRUE och FALSE ändrar vi till wn 1a för true. =IF(SEARCH(B$1;$A2);1;FALSE). FALSE skulle vi egentligen kunna plocka bort men eftersom jag gillar att ha alla valen kvar I exemplet later vi det stanna. Dock lägger vi till IFERROR till vår formel. Vi vill bestämma vad vi ska visa om vi får ett fel. Då vill vi inte visa någonting, eller en Nolla berdene på vad vi vill göra med siffrorna i nästa steg. Jag väljer att visa en 0a.

=IFERROR(IF(SEARCH(B$1;$A2);1;FALSE);)


 Det är nu möjligt att skapa en illustrerade pivottabell.


Jag gillar också att summera och jämföra direkt i tabellen. Summan delat med antalet i varje kolumn:
=SUM(B3:B236)/COUNTA(B3:B236).


1 kommentar:

  1. Det fina med SEARCH är att man kan infoga wildcards också. Prova att använda * för att ignorera avvikelser inne i textsträngen.

    SvaraRadera