Ale chociaż FILTER jest częściej używany do filtrowania wierszy, można również filtrować kolumny, sztuczka polega na dostarczeniu tablicy z taką samą liczbą kolumn jak dane źródłowe. W tym przykładzie, skonstruujemy tablicę, której potrzebujemy za pomocą logiki booleańskiej, zwanej również algebrą booleańską.

W algebrze booleańskiej, mnożenie odpowiada logice AND, a dodawanie logice OR. W pokazanym przykładzie, używamy algebry Boole’a z logiką OR (dodawanie), aby skierować się tylko do kolumn A, C i E w następujący sposób:

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

Po obliczeniu każdego wyrażenia, mamy trzy tablice wartości TRUE/FALSE:

{TRUE,FALSE,FALSE,FALSE,FALSE,FALSE}+{FALSE,FALSE,TRUE,FALSE,FALSE,FALSE}+{FALSE,FALSE,FALSE,FALSE,TRUE,FALSE}

Operacja matematyczna (dodawanie) konwertuje wartości TRUE i FALSE na 1s i 0s, więc możesz myśleć o tej operacji w ten sposób:

{1,0,0,0,0,0}+{0,0,1,0,0,0}+{0,0,0,0,1,0}

W końcu mamy pojedynczą poziomą tablicę 1s i 0s:

{1,0,1,0,1,0}

która jest dostarczana bezpośrednio do funkcji FILTER jako argument include:

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

Zauważ, że jest 6 kolumn w danych źródłowych i 6 wartości w tablicy, wszystkie albo 1 albo 0. FILTER wykorzystuje tę tablicę jako filtr, aby uwzględnić tylko kolumny 1, 3 i 5 z danych źródłowych. Kolumny 2, 4 i 6 są usuwane. Innymi słowy, jedyne kolumny, które przetrwały, są związane z 1s.

Z użyciem funkcji MATCH

Zastosowanie logiki OR z dodawaniem, jak pokazano powyżej, działa dobrze, ale nie skaluje się dobrze i uniemożliwia użycie zakresu wartości z arkusza jako kryteriów. Alternatywnie, można użyć funkcji MATCH wraz z funkcją ISNUMBER w taki sposób, aby skonstruować argument include bardziej efektywnie:

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

Funkcja MATCH jest skonfigurowana tak, aby szukać wszystkich nagłówków kolumn w stałej tablicy {„a”, „c”, „e”}, jak pokazano na rysunku. Robimy to w ten sposób, aby wynik z funkcji MATCH miał wymiary zgodne z danymi źródłowymi, które zawierają 6 kolumn. Zauważ również, że trzeci argument w MATCH jest ustawiony na zero, aby wymusić dokładne dopasowanie.

Po uruchomieniu MATCH, zwraca on tablicę jak poniżej:

{1,#N/A,2,#N/A,3,#N/A}

Ta tablica trafia bezpośrednio do ISNUMBER, który zwraca kolejną tablicę:

{TRUE,FALSE,TRUE,FALSE,TRUE,FALSE}

Tak jak powyżej, ta tablica jest pozioma i zawiera 6 wartości oddzielonych przecinkami. FILTER używa tej tablicy do usunięcia kolumn 2, 4 i 6.

Z zakresem

Ponieważ nagłówki kolumn znajdują się już w arkuszu w zakresie I4:K4, powyższa formuła może być łatwo dostosowana do bezpośredniego użycia zakresu w ten sposób:

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

Zakres I4:K4 jest oceniany jako {„a”, „c”, „e”} i zachowuje się tak samo jak stała tablicowa w powyższej formule.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *