Excel képlet: SZŰRŐ az oszlopok eltávolításához -

Általános képlet

=FILTER(data,(header="a")+(header="b"))

Összegzés

Oszlopok szűréséhez adjon meg egy vízszintes tömböt az include argumentumhoz. A bemutatott példában az I5 képlete a következő:

=FILTER(B5:G12,(B4:G4="a")+(B4:G4="c")+(B4:G4="e"))

Az eredmény egy szűrt adatkészlet, amely csak A, C és E oszlopokat tartalmaz a forrásadatokból.

Magyarázat

Bár a SZŰRŐ-t gyakrabban használják a sorok szűrésére, oszlopokat is szűrhet, a trükk az, hogy egy tömböt ugyanolyan oszlopszámmal látunk el, mint a forrásadatok. Ebben a példában a szükséges tömböt logikai logikával konstruáljuk, más néven Boolean algebrának.

A logikai algebrában a szorzás megfelel az ÉS logikának, az összeadás pedig az OR logikának. A bemutatott példában Boole algebrát használunk OR logikával (kiegészítéssel), hogy csak az A, C és E oszlopokat célozzuk meg:

(B4:G4="a")+(B4:G4="c")+(B4:G4="e")

Miután minden kifejezést kiértékeltünk, három TRUE / FALSE értéktömböt kapunk:

(TRUE,FALSE,FALSE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,TRUE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)

A matematikai művelet (összeadás) az IGAZ és HAMIS értékeket 1 és 0 értékekké konvertálja, így a műveletre így gondolhat:

(1,0,0,0,0,0)+ (0,0,1,0,0,0)+ (0,0,0,0,1,0)

Végül egyetlen vízszintes tömbünk van: 1s és 0s:

(1,0,1,0,1,0)

amelyet közvetlenül a FILTER függvénynek juttatunk el, mint az include argumentumot:

=FILTER(B5:G12,(1,0,1,0,1,0))

Figyelje meg, hogy 6 oszlop van a forrásadatokban és 6 érték a tömbben, mind 1 vagy 0. A FILTER ezt a tömböt használja szűrőként, hogy csak az 1., a 3. és az 5. oszlopot vegye fel a forrásadatokból. A 2., 4. és 6. oszlopot eltávolítjuk. Más szavakkal, az egyetlen fennmaradó oszlop 1-hez van társítva.

A MATCH funkcióval

A fenti logikával kiegészített VAGY logika alkalmazása jól működik, de nem méretezhető jól, és lehetetlenné teszi a munkalap értéktartományának használatát kritériumként. Alternatív megoldásként használhatja a MATCH függvényt az ISNUMBER függvénnyel együtt, hogy hatékonyabban szerkessze az include argumentumot:

=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,("a","c","e"),0)))

A MATCH funkció úgy van konfigurálva, hogy az összes oszlopfejlécet megkeresse a tömb konstansban ("a", "c", "e") az ábra szerint. Ezt úgy csináljuk, hogy a MATCH eredményének méretei kompatibilisek legyenek a forrásadatokkal, amelyek 6 oszlopot tartalmaznak. Figyelje meg azt is, hogy a MATCH harmadik argumentuma nullára van állítva a pontos egyezés kikényszerítéséhez.

A MATCH futtatása után egy ilyen tömböt ad vissza:

(1,#N/A,2,#N/A,3,#N/A)

Ez a tömb közvetlenül az ISNUMBER számba megy, amely egy másik tömböt ad vissza:

(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)

Mint fent, ez a tömb vízszintes és 6 vesszővel elválasztott értéket tartalmaz. A FILTER a tömb segítségével eltávolítja a 2., 4. és 6. oszlopot.

Távolsággal

Mivel az oszlopfejlécek már a munkalapon vannak az I4: K4 tartományban, a fenti képlet könnyen adaptálható a tartomány közvetlen így történő felhasználására:

=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,I4:K4,0)))

Az I4: K4 tartományt ("a", "c", "e") értékként értékeljük, és ugyanúgy viselkedik, mint a fenti képlet tömbállandója.

érdekes cikkek...