0Pricing
Excel Formulas Academy · Lekcja

Wyszukiwanie ostatniej pasującej wartości

Zwracanie najnowszego dopasowania za pomocą technik wyszukiwania od końca

Wyszukiwanie ostatniej pasującej wartości to bezpłatna lekcja Excel Formulas Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Excel Formulas Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Excel Formulas Academy zawiera 4 lekcji w sumie.

Problem z ostatnim dopasowaniem

Większość funkcji wyszukiwania zwraca pierwsze znalezione dopasowanie. Czasami potrzebne jest jednak ostatnie: najnowsza cena produktu, ostatnia aktualizacja statusu albo końcowy wpis klienta.

Gdy lista z czasem się powiększa i ten sam klucz pojawia się wiele razy, najniższy wiersz zwykle zawiera najświeższe dane. Standardowe funkcje VLOOKUP lub MATCH z dokładnym dopasowaniem uparcie zwrócą jednak górny wiersz.

W tej lekcji pokazano kilka niezawodnych sposobów pobierania ostatniej pasującej wartości.

Dlaczego dokładne MATCH znajduje pierwsze dopasowanie

MATCH(value, range, 0) przeszukuje zakres od góry do dołu i zatrzymuje się przy pierwszym dokładnym dopasowaniu. Jeśli "Apple" występuje w wierszach 2, 5 i 9, MATCH zwróci 2.

To idealne rozwiązanie, gdy klucze są unikatowe, ale pomija nowsze wiersze. Aby dotrzeć do ostatniego wystąpienia, potrzebujemy techniki przeszukującej dane od dołu albo zwracającej pozycję ostatniego dopasowania.

=MATCH("Apple", A2:A10, 0)

XLOOKUP z wyszukiwaniem od końca

Jeśli korzystasz z nowoczesnej wersji Excel lub Google Sheets, funkcja XLOOKUP znacznie ułatwia zadanie. Jej piąty i szósty argument sterują trybem dopasowania oraz kierunkiem wyszukiwania.

Przekaż -1 jako argument trybu wyszukiwania, aby przeszukiwać dane od końca do początku. XLOOKUP zwróci wtedy wartość powiązaną z najniższym pasującym kluczem.

W tym przykładzie funkcja wyszukuje produkt z G1 w zakresie A2:A10 i zwraca odpowiadającą mu cenę z B2:B10, rozpoczynając wyszukiwanie od dołu.

=XLOOKUP(G1, A2:A10, B2:B10, "Not found", 0, -1)

Klasyczny trik z LOOKUP

W starszych arkuszach często stosuje się znany trik wykorzystujący LOOKUP, liczbę 2 i sprytne dzielenie przez warunek.

Wyrażenie 1/(A2:A10=G1) zwraca 1 dla pasujących wierszy, a dla pozostałych powoduje błąd dzielenia. LOOKUP, szukając wartości 2 (większej niż każda występująca wartość), pomija błędy i zatrzymuje się na ostatniej poprawnej wartości 1, zwracając odpowiadającą jej wartość z B2:B10.

=LOOKUP(2, 1/(A2:A10=G1), B2:B10)

Jak działa trik z LOOKUP

Prześledźmy działanie wyrażenia 1/(A2:A10=G1):

  • Wiersze, w których klucz pasuje, dają 1/TRUE = 1.
  • Wiersze, które nie pasują, dają 1/FALSE = błąd #DIV/0!.

LOOKUP ignoruje błędy i gdy nie może znaleźć szukanej wartości (2), zwraca wynik odpowiadający ostatniemu wpisowi bez błędu. Ponieważ wszystkie dopasowania mają wartość 1, wygrywa ostatnia jedynka, więc otrzymujemy wartość z ostatniego pasującego wiersza.

=LOOKUP(2, 1/(A2:A10=G1), B2:B10)

Ostatnie dopasowanie za pomocą INDEX i MATCH

Można również pozostać przy rodzinie INDEX-MATCH. Pomysł polega na znalezieniu pozycji ostatniego dopasowania, a następnie przekazaniu jej do INDEX.

Użyj tego samego triku z dzieleniem wewnątrz MATCH: wyszukaj 2 w 1/(A2:A10=G1), aby uzyskać pozycję wiersza ostatniego dopasowania. Następnie przekaż tę pozycję do INDEX działającego na kolumnie wynikowej.

=INDEX(B2:B10, MATCH(2, 1/(A2:A10=G1)))

Dlaczego MATCH(2, ...) znajduje ostatnie dopasowanie

Gdy trzeci argument MATCH zostanie pominięty, domyślnie przyjmuje wartość 1, czyli przybliżone dopasowanie w rosnąco uporządkowanych danych. MATCH szuka wtedy największej wartości mniejszej lub równej 2.

Tablica 1/(A2:A10=G1) zawiera tylko jedynki i błędy. Największą wartością nieprzekraczającą 2 jest 1, a MATCH zwraca pozycję ostatniej takiej jedynki. Ta pozycja dokładnie odpowiada ostatniemu pasującemu wierszowi.

=MATCH(2, 1/(A2:A10=G1))

Konkretny przykład

Załóżmy, że A2:A10 zawiera rejestrowane w czasie statusy zamówienia "Order-7", a B2:B10 zawiera tekst statusu. "Order-7" występuje w wierszach 3, 6 i 9.

  • Tablica dopasowań oznacza wiersze 3, 6 i 9 jedynką, a pozostałe jako błędy.
  • MATCH(2, ...) zwraca 9 jako pozycję, licząc od początku zakresu, czyli ostatnie dopasowanie.
  • INDEX zwraca status z tego końcowego wiersza, czyli najnowszy status.
=INDEX(B2:B10, MATCH(2, 1/(A2:A10=G1)))

Wybór właściwej metody

Jakiego podejścia użyć?

  • XLOOKUP z -1: najczystsze i najbardziej czytelne rozwiązanie, jeśli aplikacja je obsługuje.
  • LOOKUP(2, 1/...): działa niemal wszędzie i nie wymaga konkretnej wersji.
  • INDEX-MATCH(2, 1/...): przydatne, gdy potrzebujesz również pozycji albo chcesz zwrócić wartość z innej kolumny.

Wszystkie trzy sposoby dają tę samą odpowiedź. Wybierz metodę odpowiednią do używanych narzędzi i oczekiwanej czytelności formuły.

Typowe pułapki

Zwróć uwagę na następujące kwestie:

  • Niezgodne rozmiary zakresów: zakres warunku i zakres wynikowy muszą mieć tę samą wysokość, inaczej wiersze przestaną się zgadzać.
  • Ukryte duplikaty: spacje na końcu mogą sprawić, że "Apple " będzie różnić się od "Apple". Najpierw oczyść tekst za pomocą TRIM.
  • Brak dopasowania: trik zwróci błąd, jeśli nic nie pasuje. Użyj IFERROR, aby zapewnić przyjazną wartość zastępczą.
=IFERROR(LOOKUP(2, 1/(A2:A10=G1), B2:B10), "Not found")

Ostatnie dopasowanie z wieloma kryteriami

Trik z ostatnim dopasowaniem można połączyć z dwoma warunkami. Pomnóż testy warunków wewnątrz dzielenia, aby tylko wiersze spełniające oba klucze dawały wynik 1.

Na przykład znajdź najnowszą cenę, dla której produkt jest równy G1 i region jest równy G2. Trik LOOKUP(2, ...) nadal wskaże ostatni wiersz spełniający warunki.

Jest to przydatne w dziennikach ze znacznikami czasu, w których ten sam produkt występuje w kilku regionach.

=LOOKUP(2, 1/((A2:A10=G1)*(B2:B10=G2)), C2:C10)

Szybkie sprawdzenie

Sprawdź, czy rozumiesz wyszukiwanie ostatniego dopasowania.

Podsumowanie lekcji

Aby zwrócić ostatnią pasującą wartość zamiast pierwszej:

  • Użyj XLOOKUP(..., -1), aby w obsługiwanych wersjach wyszukiwać od dołu do góry.
  • W dowolnej wersji użyj klasycznego triku LOOKUP(2, 1/(range=key), result).
  • Użyj INDEX(result, MATCH(2, 1/(range=key))), gdy potrzebujesz również pozycji.

Pamiętaj, aby zakresy miały ten sam rozmiar, usuwać zbędne spacje i dla bezpieczeństwa opakować formułę w IFERROR.

=XLOOKUP(G1, A2:A10, B2:B10, "Not found", 0, -1)

Często zadawane pytania

Czy lekcja „Wyszukiwanie ostatniej pasującej wartości” jest bezpłatna?

Tak — pełny tekst „Wyszukiwanie ostatniej pasującej wartości” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Excel Formulas Academy, przejdź na CoddyKit PRO. Kurs Excel Formulas Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Wyszukiwanie ostatniej pasującej wartości”?

Zwracanie najnowszego dopasowania za pomocą technik wyszukiwania od końca Ćwiczysz Excel Formulas Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Excel Formulas Academy?

Nie wymagamy żadnego doświadczenia. Excel Formulas Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Wyszukiwanie ostatniej pasującej wartości”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Excel Formulas Academy?

Tak. Każda lekcja Excel Formulas Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Wyszukiwanie dwukierunkowe za pomocą INDEX-MATCH-MATCH
  2. Wyszukiwanie ostatniej pasującej wartości
  3. Wyszukiwanie według wielu kryteriów za pomocą INDEX-MATCH
  4. Dopasowanie przybliżone w tabelach progowych
← Powrót do Excel Formulas Academy