
Podsumowanie
Aby wyodrębnić dane z wieloma warunkami LUB, możesz użyć funkcji FILTER razem z funkcją MATCH. W pokazanym przykładzie formuła w F9 to:
=FILTER(B5:D16, ISNUMBER(MATCH(items,F5:F6,0))* ISNUMBER(MATCH(colors,G5:G6,0))* ISNUMBER(MATCH(cities,H5:H6,0)))
gdzie pozycje (B3: B16), kolory (C3: C16) i miasta (D3: D16) są nazwane zakresami.
Ta formuła zwraca dane, gdzie pozycja to (koszulki LUB bluza z kapturem) ORAZ kolor to (czerwony LUB niebieski) ORAZ miasto to (Denver LUB Seattle).
Wyjaśnienie
W tym przykładzie kryteria są wprowadzane w zakresie F5: H6. Logika wzoru jest następująca:
pozycja to (koszulka LUB bluza z kapturem) I kolor to (czerwony LUB niebieski) ORAZ miasto to (Denver LUB Seattle)
Logika filtrowania tej formuły (argument włączający) jest stosowana z funkcjami ISNUMBER i MATCH, wraz z logiką boolowską stosowaną w operacji tablicowej.
PODAJANIE jest skonfigurowane „wstecz”, z wartościami wyszukiwania pochodzącymi z danych i kryteriami używanymi w tablicy wyszukiwania. Na przykład pierwszy warunek jest taki, że elementy muszą być koszulkami lub bluzami z kapturem. Aby zastosować ten warunek, MATCH jest skonfigurowane w następujący sposób:
MATCH(items,F5:F6,0) // check for tshirt or hoodie
Ponieważ dane zawierają 12 wartości, wynik jest tablicą zawierającą 12 wartości, takich jak ta:
(1;#N/A;#N/A;2;#N/A;2;2;#N/A;1;#N/A;2;1)
Ta tablica zawiera błędy # N / A (brak dopasowania) lub liczby (dopasowanie). Numery ogłoszeń odpowiadają przedmiotom, które są T-shirtem lub bluzą z kapturem. Aby przekonwertować tę tablicę na wartości PRAWDA i FAŁSZ, funkcja PODAJ.POZYCJĘ jest umieszczana w funkcji ISNUMBER:
ISNUMBER(MATCH(items,F5:F6,0))
co daje tablicę taką jak ta:
(TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE)
W tej tablicy wartości PRAWDA odpowiadają koszulce lub bluzie z kapturem.
Pełna formuła zawiera trzy wyrażenia, takie jak powyższe, użyte dla argumentu include funkcji FILTER:
ISNUMBER(MATCH(items,F5:F6,0))* // tshirt or hoodie ISNUMBER(MATCH(colors,G5:G6,0))* // red or blue ISNUMBER(MATCH(cities,H5:H6,0))) // denver or seattle
Po obliczeniu MATCH i ISNUMBER mamy trzy tablice zawierające wartości TRUE i FALSE. Operacja matematyczna polegająca na pomnożeniu tych tablic razem przekształca wartości PRAWDA i FAŁSZ na 1 i 0, więc możemy wizualizować tablice w tym momencie w następujący sposób:
(1;0;0;1;0;1;1;0;1;0;1;1)* (1;0;1;1;0;1;0;0;0;0;0;1)* (1;0;1;0;0;1;0;1;1;0;0;1)
Wynik, zgodnie z zasadami arytmetyki logicznej, to pojedyncza tablica:
(1;0;0;0;0;1;0;0;0;0;0;1)
który staje się argumentem włączającym w funkcji FILTER:
=FILTER(B5:D16,(1;0;0;0;0;1;0;0;0;0;0;1))
Ostatecznym wynikiem są trzy wiersze danych pokazane w F9: H11
Z wartościami zakodowanymi na stałe
Chociaż formuła w przykładzie korzysta z kryteriów wprowadzonych bezpośrednio w arkuszu, zamiast tego można je na stałe zakodować jako stałe tablicowe:
=FILTER(B5:D16, ISNUMBER(MATCH(items,("Tshirt";"Hoodie"),0))* ISNUMBER(MATCH(colors,("Red";"Blue"),0))* ISNUMBER(MATCH(cities,("Denver";"Seattle"),0)))