✔ 14 dagers angrerett ✔ Fleksibel læring i eget tempo ✔ Brukes av bedrifter, universitet og offentlige virksomheter

Mestre FILTRER-funksjonen i Excel

Mestre FILTRER-funksjonen i Excel

FILTRER

FILTRER-funksjonen er uten tvil en av mine favorittfunksjoner i Excel. I sin enkleste form filtrerer funksjonen rader (eller verdier) i et datasett basert på et uttrykk vi skriver i formelen. Selv om vi i formelen kan angi et logisk uttrykk som brukes for filtrering, fungerer formelen faktisk med hvilken som helst sekvens av boolske verdier – forutsatt at den er like lang som datasettet. Denne fantastiske funksjonaliteten gjør det mulig for oss å basere filtreringen på mer avansert logikk, som vi snart skal se nærmere på.

Hent eksempelfilen: FILTRER

Syntax:

FILTRER (matrise; inkluder; [hvis tom])

Her er et eksempel av funksjonen i sin enkleste form. Funksjonen filtrerer hele tabellen til venstre ved å inkludere alle oppføringer der verdien i kolonnen «Produkt» er lik «Skrivbord».

Vi ser kort på hva som skjer under overflaten når funksjonen kjøres. Det logiske uttrykket i argumentet «inkluder» returnerer følgende matrise med verdier 1 eller 0 for hver rad – avhengig av om uttrykket er SANT eller USANT. Denne matrisen brukes deretter til å evaluere hvilke verdier som inkluderes fra den opprinnelige tabellen.

Inverter resultatene

For å forstå nytten av denne funksjonaliteten ser vi på følgende eksempel. Hva om vi ønsker å inkludere alle rader som IKKE oppfyller kravene?

Det vi trenger å gjøre er å invertere sekvensen

{1;0;1;0;0;1;1;0;0} til {0;1;0;1;1;0;0;1;1}

Dette kan gjøres ved å subtrahere 1 fra matrisen og deretter returnere absoluttverdien av tallet med ABS-funksjonen. Da blir 1 ->  0 og 0 -> 1.

Invertere:

FILTRER (matrise ; ABS(( inkluder ) -1 ))

OG/ELLER med FILTRER

For å filtrere med OG/ELLER bruker vi en lignende logikk som i det forrige eksempelet. Siden Excels egne funksjoner for OG/ELLER ikke fungerer på matriser, må vi i stedet bruke matematiske operasjoner.

For OG brukes multiplikasjon, for ELLER brukes addisjon.

OG:FILTRER( matrise ; (inkluder) * (inkluder)) 

ELLER:Syntax: FILTRER( matrise ; (inkluder) + (inkluder))

Hvis vi for eksempel ønsker å filtrere alle rader mellom datoene 10/02/2022 og 02/02/2022, skriver vi to forskjellige uttrykk og multipliserer dem. Det vil si, vi inkluderer alle rader der datoen er større enn 10/02/2022 og mindre enn 02/02/2022.

[BILDE]

Men hvorfor bruker vi multiplikasjon og addisjon? Hvis vi har to ulike sammenligninger med ulike resultater og multipliserer dem, ser vi i tabellen nedenfor at svaret bare blir SANT hvis begge sammenligningene er sanne – ellers blir svaret FALSKT.

0 * 0 = 0

0 * 1 = 0

1 * 0 = 0

1 * 1 = 1

Samme logikk gjelder for addisjon:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 2 (også 2 tolkes som SANT i Excel)

Hvordan nå verdier i en filtrert tabell

FILTRER-funksjonen returnerer en dynamisk matrise som svar, noe som kan føre til problemer hvis vi ønsker å bearbeide tallene videre. Dette skjer ofte fordi funksjonen brukes til å evaluere hvilke verdier/rader som skal inkluderes, for eksempel i en beregning. En måte å håndtere dette på er å filtrere bare den kolonnen vi trenger i stedet for å returnere flere kolonner eller hele tabellen.

Hvis vi for eksempel i vårt datumeksempel ønsker å bruke en FINN.RAD-funksjon på produktene eller summere prisene, må vi dynamisk nå disse verdiene. Dette kan gjøres på flere måter, men den enkleste måten er sannsynligvis å inkorporere funksjonen i en INDEKS-funksjon.

Returner kolonnen fra filtrert tabell:INDEKS(FILTRER( matrise ; inkluder) ; 0 ; nr.kolonne))

Vi kan derfor summere alle verdiene i kolonnen «Pris» der bestillinger er gjort mellom våre valgte datoer ved hjelp av følgende formel:

En ulempe med FILTRER-funksjonen er at den er relativt treg og ressurskrevende når man jobber med store mengder data. Derfor anbefaler jeg alltid å bruke Excels innebygde funksjoner for for eksempel betingede beregninger eller sammenligninger, selv om det vanligvis er mulig å bygge opp en identisk funksjon med FILTRER.


Legg igjen en kommentar

Du må være logg inn for å kommentere.

Flere blogginnlegg

Lei av å google?
Abboner på vårt nyhetsbrev og få de beste Excel-tipsene hver uke.

Om skribenten

Emil har jobbat på Learnesy som produktutvecklare i flera år och ligger bakom flera av Learnesys kurser. Han har en utbildning inom datavetenskap med ett stort intresse för det analytiska och teoretiska. Utöver Finska och Svenska snackar Emil även flytande Excelfunktioner!