Excel formula: FILTRIRANJE za odstranjevanje stolpcev -

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.

Zanimive Članki...