Jak wyszukiwać z wieloma kryteriami w Excelu (2 proste sposoby)

  • Udostępnij To
Hugh West

Pracując w Excelu, mamy to robić często. Mamy wyszukać konkretną wartość w zbiorze danych, która spełnia jedno lub więcej kryteriów. Dzisiaj pokażę, jak można wyszukać jedną lub więcej wartości spełniających wiele kryteriów w zbiorze danych w Excelu.

Pobierz Zeszyt ćwiczeń

Pobierz ten zeszyt ćwiczeń, aby ćwiczyć podczas czytania tego artykułu.

Look Up with Multiple Criteria.xlsx

2 Odpowiednie sposoby na wyszukiwanie z wieloma kryteriami w programie Excel

Spójrz na poniższy zestaw danych, mamy Identyfikatory pracowników, Nazwy pracowników, Daty dołączenia, oraz Wynagrodzenia firmy o nazwie Grupa Jupyter Będziemy wyszukiwać wartości z wieloma kryteriami używając INDEX, MATCH, XLOOKUP, oraz Funkcje filtrów Oto przegląd zbioru danych do naszego dzisiejszego zadania.

Teraz spróbujemy z tego zestawu danych wyszukać wartości spełniające różnego rodzaju kryteria wielokrotne.

Metoda 1: Wyszukaj wiele kryteriów typu AND

Przede wszystkim spróbujmy wyszukać jakieś wielorakie kryteria ORAZ typu. tutaj, ORAZ wpisanie wielu kryteriów oznacza, że jedna wartość musi spełniać wszystkie kryteria, aby została wybrana. Spróbujmy znaleźć pracownika o numerze ID większy niż 400 i wynagrodzenie większe niż $40000 Możesz wykonać to zadanie w 3 różne sposoby.

1.1 Połączenie funkcji INDEX i MATCH w wierszach i kolumnach

Zanim przejdziesz do głównego punktu, możesz rzucić okiem na INDEX oraz MATCH funkcje Excela. Znajdziemy pracownika z numerem ID większy niż 400 i wynagrodzenie większe niż $40000 używając INDEX-MATCH wzór, postępujmy zgodnie z poniższą instrukcją:

Kroki:

  • Najpierw należy wybrać komórkę G7 i zapisać następujący wzór.
=INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1)

  • Następnie należy nacisnąć Wejdź na stronę na twojej klawiaturze. W rezultacie znaleźliśmy pracownika z ID większy niż 400 i wynagrodzenie większe niż $40000 , Richard Samuelson .

Podział formuły
  • B5:B16>400 przechodzi przez wszystkie Identyfikatory w kolumnie B i zwraca tablicę TRUE oraz FALSE , TRUE gdy ID jest większa niż 400 w przeciwnym razie FALSE .
  • E5:E16>40000 przechodzi przez wszystkie wynagrodzenia w kolumnie E i zwraca tablicę TRUE oraz FALSE , TRUE gdy wynagrodzenie jest większe niż $40,000 w przeciwnym razie FALSE.
  • (B5:B16>400)*(E5:E16>40000) mnoży dwie tablice TRUE oraz FALSE i zwraca a 1 gdy ID jest większa niż 400 a wynagrodzenie jest większe niż $40,000 W przeciwnym razie zwraca 0 .
  • MATCH(1,(B5:B16>400)*(E5:E16>40000),0) przechodzi przez tablicę (B5:B16>400)*(E5:E16>40000) i zwraca numer seryjny pierwszego 1 napotyka.
  • W tym przypadku zwraca 5, ponieważ pierwszy 1 jest w numerze seryjnym 5.
  • W końcu, INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1) zwraca nazwę Pracownika z zakresu C5:C16 o numerze wiersza równym wyjściu z MATCH i numer kolumny równy 1 .
Uwagi To jest Wzór na tablicę . Więc nie zapomnij nacisnąć Ctrl + Shift + Enter chyba że jesteś w Office 365 .
  • To jest wymagany pracownik z ID większy niż 400 i wynagrodzenie większe niż $40,000 Jeśli to rozumiesz, to czy możesz mi podać wzór, aby znaleźć pracownika, który dołączył do przed 31 grudnia 2009 r. ale nadal otrzymuje wynagrodzenie mniej niż 25 000 USD .
  • Następnie wpisz w komórce poniższą formułę G7 .
=INDEX(C5:C16,MATCH(1,(D5:D16

  • Stąd też trafienie Wejdź na stronę . Dalej, dostaniesz Angela Hopkins jako zwrot formuły.

Read More: 7 typów Lookup, których możesz użyć w Excelu

1.2 Używanie funkcji XLOOKUP

Poprzednie zadanie możemy zrealizować używając XLOOKUP również funkcję Excela, ale pamiętaj, XLOOKUP jest dostępny tylko w Office 365 Zanim przejdziesz do głównego punktu, możesz rzucić okiem na XLOOKUP Funkcja Excela. Teraz znajdziemy pracownika o numerze ID większy niż 400 i wynagrodzenie większe niż $40,000 używając XLOOKUP funkcja. podążajmy za instrukcjami poniżej, aby się nauczyć!

Kroki:

  • Po pierwsze, wpisz poniższą formułę w komórce G7 .
=XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16)

  • W efekcie otrzymaliśmy tego samego pracownika co wcześniej, Richard Samuelson To jest nazwisko pracownika z ID większy niż 400 i wynagrodzenie większe niż $40,000 .

Podział formuły
  • (B5:B16>400)*(E5:E16>40000) zwraca tablicę 1 oraz 0 , 1 gdy ID jest większa niż 400 a wynagrodzenie jest większe niż $40,000 . 0 inaczej.
  • XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16) najpierw wyszukuje 1 w tablicy (B5:B16>400)*(E5:E16>40000). Gdy znajdzie jedną, zwraca wartość z sąsiedniej komórki w zakresie C5:C16 .

Read More: Jak używać funkcji LOOKUP w Excelu (4 odpowiednie przykłady)

1.3 Zastosowanie funkcji FILTER

Na stronie INDEX-MATCH i XLOOKUP formuły mają jedno ograniczenie. Jeśli więcej niż jedna wartość spełnia podane kryteria, zwracają tylko pierwszą z nich. Na przykład we wcześniejszym przykładzie, jeśli przyjrzysz się bliżej, zauważysz, że istnieją dwa pracownicy z ID większy niż 400 i wynagrodzenie większe niż $40,000 .Są to Richard Samuelson oraz Usman Malik. Jednak. INDEX-MATCH i XLOOKUP formuły zwracają tylko pierwszy pracownik, Richard Samuelson Aby uzyskać wszystkie wartości, które spełniają podane kryteria, możesz użyć FILTR Funkcja Excela. Ale pamiętaj, że FILTR Funkcja jest również dostępna tylko w Office 365 .

Kroki:

  • Aby wyłonić pracowników z ID większy niż 400 i wynagrodzenie większe niż $40,000 the FILTR formuła będzie:
=FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000))

  • Po tym, tym razem, mamy wszystkich pracowników, którzy utrzymują wszystkie kryteria, Richard Samuelson oraz Usman Malik .

Podział formuły
  • (B5:B16>400)*(E5:E16>40000) zwraca tablicę 1 oraz 0 , 1 gdy ID jest większe niż 400 i pensja jest większa niż 40,000$. 0 w przeciwnym razie (zob. INDEX-MATCH sekcja).
  • FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000)) przechodzi przez wszystkie wartości w tablicy (B5:B16>400)*(E5:E16>40000), a kiedy znajdzie 1 , zwraca sąsiednią wartość z zakresu C5:C16 .
  • W ten sposób otrzymujemy wszystkich pracowników o numerach ID większy niż 400 i wynagrodzenie większe niż $40,000 .
  • Teraz, jeśli to rozumiesz, czy możesz podać mi wzór, aby znaleźć pracowników, którzy dołączyli między 1 stycznia 2014 r, oraz 31 grudnia 2016 r. , ale otrzymywał wynagrodzenie w wysokości co najmniej 30 000 USD Tak. Masz rację. Formuła będzie taka:
=FILTER(C5:C16,(D5:D16>=DATE(2014,1,1))*(D5:D16=30000))

Read More: Jak wyszukać wiele wartości w programie Excel (10 sposobów)

Metoda 2: Wyszukaj wiele kryteriów typu OR

Teraz postaramy się wyszukać wartości, które spełniają wiele kryteriów LUB typu. tutaj, LUB Kryteria typu oznaczają, że jedna wartość musi spełniać co najmniej jedno kryterium spośród wszystkich kryteriów, aby została wybrana. Spróbujmy znaleźć pracownika, który dołączył do zespołu przed 1 Jan, 2010 lub otrzymuje wynagrodzenie większe niż $30,000 .

2.1 Połączenie funkcji INDEX i MATCH w zakresie dat

Kliknij tutaj, aby odwiedzić INDEX i kliknij tutaj, aby odwiedzić MATCH funkcja przed kontynuacją, jeśli chcesz.

Kroki:

  • Na stronie INDEX-MATCH formuła będzie wyglądać tak, jak pokazano w poniższym polu formuły.
=INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1)

  • Zobacz, mamy Jack Simpson , pierwszy pracownik z datą przystąpienia do pracy przed 1 stycznia 2010 r. , lub wynagrodzenie więcej niż 30 000 USD Ale pracowników jest znacznie więcej. INDEX-MATCH, dostajemy tylko pierwszą.
  • Później zbierzemy wszystkich pracowników razem, używając FILTR Jest to wymagany pracownik, który spełnia przynajmniej jedno kryterium.

Podział formuły
  • D5:D16 ="" strong=""> zwraca tablicę TRUE oraz FALSE . TRUE gdy data dołączenia w kolumnie D jest mniejsza niż 1 stycznia 2010 r. FALSE inaczej.
  • E5:E16>30000 zwraca również tablicę TRUE oraz FALSE . TRUE gdy pensja jest większa niż 30 tys. dolarów. FALSE inaczej.
  • (D5:D1630000) dodaje te dwie tablice i zwraca kolejną tablicę 0, 1, lub 2 . 0 gdy nie jest spełnione żadne kryterium, 1 gdy spełnione jest tylko jedno kryterium oraz 2 gdy oba kryteria są spełnione.
  • ((D5:D1630000))>0 przechodzi przez wszystkie wartości tablicy (D5:D1630000) i zwraca TRUE jeśli wartość jest większa niż 0 ( 1 oraz 2 ), oraz FALSE inaczej ( 0 ).
  • MATCH(TRUE,((D5:D1630000))>0,0) przechodzi przez wszystkie wartości w tablicy ((D5:D1630000))>0 i zwraca pierwszy numer seryjny, w którym otrzymuje TRUE .
  • W tym przypadku, zwroty 3 ponieważ pierwszy TRUE jest w serii 3 .
  • Wreszcie, INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1) zwraca nazwisko pracownika z zakresu C5:C16 z numerem seryjnym zwróconym przez MATCH funkcja.

Teraz, jeśli to rozumiesz, czy możesz powiedzieć mi formułę, aby znaleźć pracownika z ID mniej niż 300, lub data dołączenia krótsza niż styczeń 1, 2012, lub wynagrodzenie większe niż $30,000 ?

Tak. Masz rację. Formuła będzie taka:

=INDEX(C5:C16,MATCH(TRUE,((B5:B16<200)+(D5:D1630000))>0,0),1)

Read More: Jak wyszukać tekst w programie Excel (7 odpowiednich metod)

2.2 Zastosowanie funkcji XLOOKUP

To samo zadanie można wykonać używając XLOOKUP funkcja w Excelu. XLOOKUP jest dostępny tylko w Office 365 .

Kroki:

  • Wzór na znalezienie pracownika z datą dołączenia przed styczniem 1, 2010, lub wynagrodzenie większe niż $30,000 będzie:
=XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16)

  • Zobacz, mamy tego samego pracownika co wcześniej, Jack Simpson . Ale jak w przypadku INDEX-MATCH wzór, więcej pracowników spełnia podane kryteria, my mamy tylko pierwszy.

Podział formuły
  • ((D5:D1630000))>0 zwraca TRUE gdy spełnione jest co najmniej jedno z dwóch kryteriów, w przeciwnym razie FALSE . Patrz wyżej.
  • XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16) następnie zwraca nazwisko pracownika z kolumny C5:C16 gdzie dostaje pierwsze TRUE .

Read More: Jak wyszukać wartość z innego arkusza w Excelu (3 proste metody)

2.3 Używanie funkcji FILTR

Na koniec wykonamy to samo zadanie używając FILTR funkcja w Excelu. FILTR funkcja jest dostępna tylko w Office 365 . Tym razem dostaniemy wszystkich pracowników, którzy dołączyli przed 1 stycznia 2010 r, lub otrzymywali wynagrodzenia większe niż $30,000 .

Kroki:

  • Formuła będzie taka sama jak w poniższym polu formuły.
=FILTER(C5:C16,((D5:D1630000))>0)

  • Zwraca więc wszystkich pracowników, którzy spełniają przynajmniej jedno z podanych kryteriów.
  • Zobacz, tym razem mamy wszystkich pracowników, którzy spełniają nasze kryteria, data dołączenia przed 1 stycznia 2010 r, lub wynagrodzenie większe niż $30,000 .

Podział formuły
  • ((D5:D1630000))>0 zwraca TRUE gdy spełnione jest co najmniej jedno z dwóch kryteriów, w przeciwnym razie FALSE . See the INDEX-MATCH sekcja.
  • FILTER(C5:C16,((D5:D1630000))>0) przechodzi przez wszystkie komórki z zakresu C5:C16 ale zwraca tylko te, gdy napotyka TRUE .

Read More: Jak wyszukać tabelę w programie Excel (8 metod)

Wniosek

Za pomocą tych metod można wyszukać jakąś wartość spełniającą wiele kryteriów z dowolnego zestawu danych. Czy znasz jakąś inną metodę? A może masz jakieś pytania? Zapraszamy do zadawania pytań.

Hugh West jest bardzo doświadczonym trenerem i analitykiem Excela z ponad 10-letnim doświadczeniem w branży. Posiada tytuł licencjata w dziedzinie rachunkowości i finansów oraz tytuł magistra administracji biznesowej. Hugh ma pasję do nauczania i opracował unikalne podejście do nauczania, które jest łatwe do naśladowania i zrozumienia. Jego specjalistyczna wiedza na temat programu Excel pomogła tysiącom studentów i profesjonalistów na całym świecie doskonalić swoje umiejętności i osiągać doskonałe wyniki w karierze. Za pośrednictwem swojego bloga Hugh dzieli się swoją wiedzą ze światem, oferując bezpłatne samouczki programu Excel i szkolenia online, aby pomóc osobom indywidualnym i firmom w pełni wykorzystać swój potencjał.