
Splošna formula
=FILTER(data,(header="a")+(header="b"))
Povzetek
Če želite filtrirati stolpce, podajte vodoravno matriko za argument vključitve. V prikazanem primeru je formula v I5:
=FILTER(B5:G12,(B4:G4="a")+(B4:G4="c")+(B4:G4="e"))
Rezultat je filtriran nabor podatkov, ki vsebuje samo stolpce A, C in E iz izvornih podatkov.
Pojasnilo
Čeprav se FILTER pogosteje uporablja za filtriranje vrstic, lahko tudi filtrirate stolpce, trik pa je, da v matriko vnesete enako število stolpcev kot izvorni podatki. V tem primeru konstruiramo polje, ki ga potrebujemo, z logično logiko, imenovano tudi logična algebra.
V logični algebri množenje ustreza logiki AND, seštevanje pa logiki OR. V prikazanem primeru uporabljamo logično algebro z logiko OR (dodatek) za ciljanje samo na stolpce A, C in E, kot je ta:
(B4:G4="a")+(B4:G4="c")+(B4:G4="e")
Po ovrednotenju vsakega izraza imamo tri nize vrednosti TRUE / FALSE:
(TRUE,FALSE,FALSE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,TRUE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)
Matematična operacija (dodajanje) pretvori vrednosti TRUE in FALSE v 1s in 0s, tako da lahko o operaciji razmišljate tako:
(1,0,0,0,0,0)+ (0,0,1,0,0,0)+ (0,0,0,0,1,0)
Na koncu imamo en sam vodoravni niz 1s in 0s:
(1,0,1,0,1,0)
ki je dostavljen neposredno funkciji FILTER kot argument vključitve:
=FILTER(B5:G12,(1,0,1,0,1,0))
Upoštevajte, da je v izvornih podatkih 6 stolpcev in 6 vrednosti v matriki, vse bodisi 1 bodisi 0. FILTER uporablja to matriko kot filter, da iz izvornih podatkov vključuje samo stolpce 1, 3 in 5. Stolpci 2, 4 in 6 so odstranjeni. Z drugimi besedami, edini stolpci, ki preživijo, so povezani z 1s.
S funkcijo MATCH
Uporaba logike OR z dodajanjem, kot je prikazano zgoraj, deluje v redu, vendar se ne prilagaja dobro in onemogoča uporabo obsega vrednosti iz delovnega lista kot merila. Kot alternativo lahko uporabite funkcijo MATCH skupaj s funkcijo ISNUMBER, kot je ta, da učinkoviteje sestavite argument vključitve:
=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,("a","c","e"),0)))
Funkcija MATCH je konfigurirana tako, da išče vse glave stolpcev v konstanti matrike ("a", "c", "e"), kot je prikazano. To naredimo tako, da ima rezultat iz MATCH združljive dimenzije z izvornimi podatki, ki vsebuje 6 stolpcev. Upoštevajte tudi, da je tretji argument v MATCH nastavljen na nič, da prisili natančno ujemanje.
Po zagonu MATCH vrne matriko, kot je ta:
(1,#N/A,2,#N/A,3,#N/A)
Ta matrika gre neposredno v ISNUMBER, ki vrne drugo matriko:
(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)
Kot zgoraj je ta matrika vodoravna in vsebuje 6 vrednosti, ločenih z vejicami. FILTER z matriko odstrani stolpce 2, 4 in 6.
Z dosegom
Ker so glave stolpcev že na delovnem listu v obsegu I4: K4, lahko zgornjo formulo enostavno prilagodimo tako, da uporabljamo obseg neposredno tako:
=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,I4:K4,0)))
Območje I4: K4 se izračuna kot ("a", "c", "e") in se obnaša tako kot konstanta matrike v zgornji formuli.