Jak używać funkcji INDEKS (INDEX) i PODAJ.POZYCJĘ (MATCH) jako bardziej elastycznej alternatywy dla WYSZUKAJ.PIONOWO?

Połączenie funkcji INDEKS (INDEX) i PODAJ.POZYCJĘ (MATCH) jest jednym z najpotężniejszych narzędzi w Excelu. Ten duet to bardziej elastyczny, szybszy i niezawodny zamiennik dla tradycyjnej funkcji WYSZUKAJ.PIONOWO (VLOOKUP) oraz WYSZUKAJ.POZIOMO (HLOOKUP).

Dlaczego INDEKS/PODAJ.POZYCJĘ jest lepsze od WYSZUKAJ.PIONOWO?

  • Brak limitu kolumny: WYSZUKAJ.PIONOWO może wyszukiwać tylko wartości znajdujące się **na prawo** od kolumny wyszukiwania. INDEKS/PODAJ.POZYCJĘ nie ma tego ograniczenia – może wyszukiwać w dowolnym kierunku (w lewo lub w prawo).
  • Mniej awaryjne: Wstawienie lub usunięcie kolumny w arkuszu nie zepsuje formuły INDEKS/PODAJ.POZYCJĘ, co często ma miejsce w przypadku WYSZUKAJ.PIONOWO.
  • Wyszukiwanie dwukierunkowe: Można łatwo rozszerzyć formułę o drugą funkcję PODAJ.POZYCJĘ, aby dynamicznie wyszukiwać zarówno w wierszach, jak i kolumnach (zobacz Krok 4).

1. Zrozumienie funkcji INDEKS (INDEX)

Funkcja INDEKS zwraca wartość z określonej komórki w zakresie, podając numer wiersza i (opcjonalnie) numer kolumny.

$$ \text{INDEKS}(\text{zakres}; \text{nr\_wiersza}; [\text{nr\_kolumny}]) $$

Jeśli wiemy, że szukana wartość jest w 5. wierszu zakresu A1:C10, formuła `=INDEKS(A1:C10; 5)` zwróci wartość z komórki A5.

2. Zrozumienie funkcji PODAJ.POZYCJĘ (MATCH)

Funkcja PODAJ.POZYCJĘ lokalizuje element w wierszu lub kolumnie i zwraca jego **pozycję** (numer wiersza lub kolumny) w tym zakresie.

$$ \text{PODAJ.POZYCJĘ}(\text{szukana\_wartość}; \text{przeszukiwany\_zakres}; [\text{typ\_dopasowania}]) $$

W naszym przypadku kluczowe jest użycie typ\_dopasowania = 0, co oznacza dokładne dopasowanie.

3. Łączenie INDEKS i PODAJ.POZYCJĘ – Wyszukiwanie pionowe

Połączmy funkcje, aby dynamicznie znaleźć numer wiersza i przekazać go do funkcji INDEKS. Załóżmy, że masz dane w zakresie A1:C10 i szukasz "Produkt B" (komórka E1) w kolumnie A, a chcesz zwrócić wartość z kolumny C.

A (ID) B (Nazwa) C (Cena)
P101 Produkt A 200
P102 Produkt B 350
P103 Produkt C 150

Formuła umieszczona np. w F1:

=INDEKS(C1:C10; PODAJ.POZYCJĘ(E1; A1:A10; 0))

Działanie:

  1. PODAJ.POZYCJĘ(E1; A1:A10; 0) szuka "Produkt B" w kolumnie A i zwraca jego pozycję (w tym przypadku 2).
  2. INDEKS(C1:C10; 2) zwraca wartość z 2. wiersza kolumny C, czyli 350.
Zaleta "Wyszukiwanie w lewo": Jeśli szukana wartość (E1) znajduje się w kolumnie C, a my chcemy zwrócić ID z kolumny A, formuła działa równie łatwo:
=INDEKS(A1:A10; PODAJ.POZYCJĘ(E1; C1:C10; 0))

4. Zaawansowane użycie – Wyszukiwanie dwukierunkowe

Jeśli użyjemy dwóch funkcji PODAJ.POZYCJĘ – jednej dla wierszy, a drugiej dla kolumn – możemy stworzyć dynamiczne wyszukiwanie w całej tabeli.

$$ \text{INDEKS}(\text{Cała\_Tabela}; \text{PODAJ.POZYCJĘ}(\text{Wartość\_wiersza}; \text{Kolumna\_nagłówków\_wierszy}; 0); \text{PODAJ.POZYCJĘ}(\text{Wartość\_kolumny}; \text{Wiersz\_nagłówków\_kolumn}; 0)) $$

Dzięki temu możesz dynamicznie wybrać np. nazwę produktu i miesiąc, a Excel zwróci wartość sprzedaży z odpowiedniej komórki.

Komentarze

Popularne posty z tego bloga

Analiza danych z użyciem Power Query w Excelu

Analiza statystyczna za pomocą wbudowanych funkcji Excela

Importowanie Danych z Innych Aplikacji do Excela