Jak używać funkcji INDEKS i PODAJ.POZYCJĘ jako zaawansowanej alternatywy dla WYSZUKAJ.PIONOWO?

Chociaż funkcja WYSZUKAJ.PIONOWO jest powszechnie znana, ma ona poważne ograniczenia, takie jak brak możliwości wyszukiwania w lewo lub konieczność liczenia kolumn. Duet funkcji INDEKS (INDEX) i PODAJ.POZYCJĘ (MATCH) jest znacznie bardziej elastycznym i potężnym rozwiązaniem do dynamicznego wyszukiwania danych w Excelu.

1. Zrozumienie poszczególnych funkcji

Funkcja INDEKS (INDEX)

Zwraca wartość komórki w macierzy na podstawie podanych numerów wierszy i kolumn. Działa jak system współrzędnych.

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

Przykład: =INDEKS(A1:C10; 5; 3) zwróci wartość z 5. wiersza i 3. kolumny w zakresie A1:C10.

Funkcja PODAJ.POZYCJĘ (MATCH)

Zwraca pozycję (numer wiersza lub kolumny) szukanej wartości w jednowymiarowym zakresie (wektorze).

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

Typ dopasowania (Match Type):

  • 0: Dokładne dopasowanie (zalecane, odpowiednik FAŁSZ w VLOOKUP).
  • 1: Mniejsze niż (przybliżone, wymagane sortowanie rosnące).
  • -1: Większe niż (przybliżone, wymagane sortowanie malejące).

Przykład: =PODAJ.POZYCJĘ("P103"; A1:A10; 0) zwróci numer wiersza, w którym w kolumnie A znajduje się wartość "P103".

2. Łączenie INDEKS i PODAJ.POZYCJĘ (IX/M)

Łączymy te funkcje, używając wyniku PODAJ.POZYCJĘ jako argumentu nr\_wiersza w funkcji INDEKS.

Zaawansowana formuła wyszukiwania:

=INDEKS(Zakres_Danych_Z_Wynikami; PODAJ.POZYCJĘ(Szukana_Wartość; Kolumna_Wyszukiwania; 0))

3. Przykład praktyczny: Wyszukiwanie w lewo

Załóżmy, że masz dane, gdzie kolumna B zawiera unikalny kod, a w kolumnie A jest cena. Chcemy znaleźć Cenę (kolumna A) na podstawie Kodu (kolumna B).

A (Cena) B (Kod)
150 P103
350 P102

W WYSZUKAJ.PIONOWO byłoby to niemożliwe. Z INDEKS/PODAJ.POZYCJĘ jest to proste:

  1. Co chcemy zwrócić? Cenę (Zakres_Danych_Z_Wynikami = $A$2:$A$100$).
  2. Gdzie chcemy wyszukać kryterium? Kod ($B$2:$B$100$).
  3. Czego szukamy? Np. wartości w komórce $D$1$.
=INDEKS(A2:A100; PODAJ.POZYCJĘ(D1; B2:B100; 0))

Formuła ta działa tak:

  • PODAJ.POZYCJĘ znajduje, w którym wierszu w kolumnie B znajduje się szukany kod.
  • INDEKS używa tego numeru wiersza, aby pobrać wartość z kolumny A.
Zalety INDEKS/PODAJ.POZYCJĘ:
  • Wyszukiwanie w lewo: Możliwość zwracania wartości z dowolnej kolumny, niezależnie od położenia kolumny wyszukiwania.
  • Wydajność: Działa szybciej na dużych zestawach danych niż WYSZUKAJ.PIONOWO.
  • Elastyczność: Zakresy do wyszukiwania i zwracania są definiowane oddzielnie, co ułatwia zarządzanie formułą.

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