
Generisk formel
=FILTER(data,(header="a")+(header="b"))
Sammendrag
Hvis du vil filtrere kolonner, må du angi et horisontalt utvalg for inkluderingsargumentet. I eksemplet vist er formelen i I5:
=FILTER(B5:G12,(B4:G4="a")+(B4:G4="c")+(B4:G4="e"))
Resultatet er et filtrert datasett som bare inneholder kolonnene A, C og E fra kildedataene.
Forklaring
Selv om FILTER oftere brukes til å filtrere rader, kan du også filtrere kolonner. Trikset er å forsyne en matrise med samme antall kolonner som kildedataene. I dette eksemplet konstruerer vi matrisen vi trenger med boolsk logikk, også kalt boolsk algebra.
I boolsk algebra tilsvarer multiplikasjon OG-logikk, og tillegg tilsvarer ELLER-logikk. I det viste eksemplet bruker vi boolsk algebra med ELLER logikk (tillegg) for å målrette bare mot kolonnene A, C og E slik:
(B4:G4="a")+(B4:G4="c")+(B4:G4="e")
Etter at hvert uttrykk er evaluert, har vi tre matriser med SANNE / FALSE verdier:
(TRUE,FALSE,FALSE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,TRUE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)
Matematikkoperasjonen (tillegg) konverterer TRUE og FALSE verdiene til 1s og 0s, slik at du kan tenke på operasjonen slik:
(1,0,0,0,0,0)+ (0,0,1,0,0,0)+ (0,0,0,0,1,0)
Til slutt har vi et enkelt horisontalt utvalg av 1s og 0s:
(1,0,1,0,1,0)
som leveres direkte til FILTER-funksjonen som inkluderingsargument:
=FILTER(B5:G12,(1,0,1,0,1,0))
Legg merke til at det er 6 kolonner i kildedataene og 6 verdier i matrisen, alle enten 1 eller 0. FILTER bruker denne matrisen som et filter for å bare inkludere kolonnene 1, 3 og 5 fra kildedataene. Kolonnene 2, 4 og 6 fjernes. Med andre ord er de eneste kolonnene som overlever assosiert med 1-er.
Med MATCH-funksjonen
Å bruke ELLER-logikk med tillegg som vist ovenfor fungerer fint, men det skaleres ikke bra, og gjør det umulig å bruke en rekke verdier fra et regneark som kriterier. Som et alternativ kan du bruke MATCH-funksjonen sammen med ISNUMBER-funksjonen slik for å konstruere inkluderingsargumentet mer effektivt:
=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,("a","c","e"),0)))
MATCH-funksjonen er konfigurert til å se etter alle kolonneoverskrifter i matrisekonstanten ("a", "c", "e") som vist. Vi gjør det på denne måten slik at resultatet fra MATCH har dimensjoner som er kompatible med kildedataene, som inneholder 6 kolonner. Legg også merke til at det tredje argumentet i MATCH er satt til null for å tvinge en nøyaktig samsvar.
Etter at MATCH har kjørt, returnerer den en matrise som dette:
(1,#N/A,2,#N/A,3,#N/A)
Denne matrisen går direkte inn i ISNUMBER, som returnerer en annen matrise:
(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)
Som ovenfor er denne matrisen vannrett og inneholder 6 verdier atskilt med komma. FILTER bruker matrisen til å fjerne kolonne 2, 4 og 6.
Med en rekkevidde
Siden kolonneoverskriftene allerede er på regnearket i området I4: K4, kan formelen ovenfor enkelt tilpasses for å bruke området direkte slik:
=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,I4:K4,0)))
Området I4: K4 blir evaluert som ("a", "c", "e"), og oppfører seg akkurat som matrisekonstanten i formelen ovenfor.