=INDEKS(C2:C6;PODAJ.POZYCJĘ(F2;A2:A6;0)) (po angielsku =INDEX(C2:C6,MATCH(F2,A2:A6,0))) znajduje wiersz, w którym F2 występuje w A2:A6, i zwraca wartość z tego samego wiersza C2:C6. PODAJ.POZYCJĘ (MATCH) znajduje pozycję, a INDEKS (INDEX) pobiera wartość z tej pozycji. To działa w każdej wersji Excela i potrafi szukać w lewo. Tabele pokazują formuły po angielsku, ale możesz w nich wpisywać formuły także po polsku, ze średnikami.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Code | Look for | Price | |
| 2 | Apple | Fruit | $1.20 | P-101 | Pear | $1.50 | |
| 3 | Pear | Fruit | $1.50 | P-102 | |||
| 4 | Carrot | Vegetable | $0.80 | P-205 | |||
| 5 | Bread | Bakery | $2.40 | P-310 | |||
| 6 | Milk | Dairy | $1.10 | P-412 |
=INDEKS(C2:C6;PODAJ.POZYCJĘ(F2;A2:A6;0))Zmień F2 na Milk, a G2 zwróci $1.10. Zmień C2:C6 na B2:B6, a zwróci kategorię.
Jak INDEKS i PODAJ.POZYCJĘ działają razem
Formuła to dwa kroki w jednej komórce. Tutaj są w osobnych komórkach, więc widać, co zwraca każda część.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Code | Look for | Bread | |
| 2 | Apple | Fruit | $1.20 | P-101 | Position | 4 | |
| 3 | Pear | Fruit | $1.50 | P-102 | Price | $2.40 | |
| 4 | Carrot | Vegetable | $0.80 | P-205 | |||
| 5 | Bread | Bakery | $2.40 | P-310 | |||
| 6 | Milk | Dairy | $1.10 | P-412 |
=INDEKS(C2:C6;G2)PODAJ.POZYCJĘ(G1;A2:A6;0) zwraca 4, bo Bread to czwarty element A2:A6. INDEKS(C2:C6;4) zwraca czwarty element C2:C6, $2.40. Wstaw PODAJ.POZYCJĘ do INDEKS w miejsce G2, a otrzymasz formułę w jednej komórce. Dwie zasady sprawiają, że to działa:
- Oba zakresy muszą zaczynać się w tym samym wierszu i mieć tę samą wysokość.
PODAJ.POZYCJĘ(...;A2:A6;0)liczy od wiersza 2, więc INDEKS musi czytaćC2:C6, a nieC1:C6(co zwróciłoby wiersz wyżej). - Kończ PODAJ.POZYCJĘ zerem. Bez niego PODAJ.POZYCJĘ wykonuje dopasowanie przybliżone, które zakłada, że kolumna A jest posortowana, a na liście nazw może zwrócić pozycję niewłaściwego wiersza. Strona o PODAJ.POZYCJĘ omawia trzy typy dopasowania.
Jeśli wartości nie ma na liście, PODAJ.POZYCJĘ zwraca #N/D! (po angielsku #N/A; tabele pokazują angielskie nazwy błędów) i tak samo cała formuła. =JEŻELI.ND(INDEKS(C2:C6;PODAJ.POZYCJĘ(F2;A2:A6;0));"Not found") pokazuje zamiast tego tekst.
Wyszukiwanie w lewo
WYSZUKAJ.PIONOWO zwraca kolumny na prawo od przeszukiwanej. INDEKS i PODAJ.POZYCJĘ nie zwracają uwagi na kolejność: przeszukaj kolumnę D, zwróć kolumnę A.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Code | Code | Product | |
| 2 | Apple | Fruit | $1.20 | P-101 | P-310 | Bread | |
| 3 | Pear | Fruit | $1.50 | P-102 | |||
| 4 | Carrot | Vegetable | $0.80 | P-205 | |||
| 5 | Bread | Bakery | $2.40 | P-310 | |||
| 6 | Milk | Dairy | $1.10 | P-412 |
=INDEKS(A2:A6;PODAJ.POZYCJĘ(F2;D2:D6;0))P-310 zwraca Bread. Wpisz P-205 w F2, aby dostać Carrot. Z WYSZUKAJ.PIONOWO musiałbyś najpierw przenieść kolumnę Code na początek tabeli.
Wyszukiwanie w dwóch kierunkach: INDEKS z dwiema funkcjami PODAJ.POZYCJĘ
INDEKS przyjmuje numer wiersza i numer kolumny. Podaj mu całą tabelę i pozwól, by jedna funkcja PODAJ.POZYCJĘ znalazła wiersz, a druga kolumnę.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Region | Jan | Feb | Mar |
| 2 | North | 4,200 | 3,900 | 4,800 |
| 3 | South | 3,100 | 3,600 | 3,300 |
| 4 | East | 5,200 | 4,700 | 5,600 |
| 5 | West | 2,800 | 3,000 | 3,400 |
| 6 | Region | East | ||
| 7 | Month | Mar | ||
| 8 | Sales | 5,600 |
=INDEKS(B2:D5;PODAJ.POZYCJĘ(B6;A2:A5;0);PODAJ.POZYCJĘ(B7;B1:D1;0))East to wiersz 3 zakresu A2:A5, a Mar to kolumna 3 zakresu B1:D1, więc INDEKS zwraca wiersz 3, kolumnę 3 tabeli B2:D5: 5,600. W polskim Excelu formuła to =INDEKS(B2:D5;PODAJ.POZYCJĘ(B6;A2:A5;0);PODAJ.POZYCJĘ(B7;B1:D1;0)). Funkcja PODAJ.POZYCJĘ dla wiersza przeszukuje pierwszą kolumnę w dół, ta dla kolumny przeszukuje wiersz nagłówków w poprzek, a oba zakresy są wyrównane z tabelą B2:D5.
Dlaczego INDEKS i PODAJ.POZYCJĘ wygrywają z WYSZUKAJ.PIONOWO
=VLOOKUP(F2, A2:D6, 3, FALSE)
=INDEX(C2:C6, MATCH(F2, A2:A6, 0))
W polskim Excelu: =WYSZUKAJ.PIONOWO(F2;A2:D6;3;FAŁSZ) i =INDEKS(C2:C6;PODAJ.POZYCJĘ(F2;A2:A6;0)). Obie zwracają cenę. Różnica wychodzi, gdy arkusz się zmienia:
- Wstawienie kolumny. Wstaw kolumnę między Category a Price, a WYSZUKAJ.PIONOWO nadal poprosi o kolumnę 3, czyli teraz nową, pustą kolumnę. W wersji z INDEKS Excel zmienia
C2:C6naD2:D6i formuła dalej działa. - Szukanie w lewo. Pokazane powyżej: WYSZUKAJ.PIONOWO nie potrafi, INDEKS i PODAJ.POZYCJĘ potrafią.
W Excelu 2021 i Microsoft 365 X.WYSZUKAJ robi jedno i drugie w jednej funkcji, z prostszymi argumentami. INDEKS i PODAJ.POZYCJĘ to nadal dobry wybór dla plików, które muszą się otwierać w Excelu 2019 lub starszym, a sam INDEKS przydaje się też osobno. Wyszukiwanie według dwóch warunków naraz opisuje strona wyszukiwanie z wieloma kryteriami.
Ćwiczenie: szukaj w lewo
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Code | Price | Stock | Product | Look for | Price | |
| 2 | P-101 | $1.20 | 40 | Apple | Milk | ||
| 3 | P-102 | $1.50 | 25 | Pear | |||
| 4 | P-205 | $0.80 | 60 | Carrot | |||
| 5 | P-310 | $2.40 | 15 | Bread | |||
| 6 | P-412 | $1.10 | 30 | Milk |
Twoja kolej: Nazwy produktów są w ostatniej kolumnie. W G2 zwróć cenę produktu z F2 za pomocą INDEKS i PODAJ.POZYCJĘ.
Ćwiczenie: wyszukiwanie w dwóch kierunkach
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Math | Science | Art |
| 2 | Ana | 78 | 85 | 92 |
| 3 | Ben | 64 | 71 | 88 |
| 4 | Cara | 95 | 89 | 73 |
| 5 | Dev | 82 | 67 | 79 |
| 6 | ||||
| 7 | Student | Cara | ||
| 8 | Subject | Science | ||
| 9 | Score |
Twoja kolej: W B9 zwróć wynik ucznia z B7 z przedmiotu z B8.
Najczęściej zadawane pytania
Jak działają INDEKS i PODAJ.POZYCJĘ?
PODAJ.POZYCJĘ znajduje pozycję wartości w kolumnie, a INDEKS zwraca wartość z tej pozycji w innej kolumnie. W =INDEKS(C2:C6;PODAJ.POZYCJĘ("Pear";A2:A6;0)) PODAJ.POZYCJĘ zwraca 2, bo Pear to drugi element A2:A6, a INDEKS zwraca drugi element C2:C6.
Dlaczego używać INDEKS i PODAJ.POZYCJĘ zamiast WYSZUKAJ.PIONOWO?
Ta para może zwrócić kolumnę leżącą na lewo od przeszukiwanej i nie psuje się po wstawieniu kolumny w środek tabeli (nie ma numeru kolumny, który mógłby się zdezaktualizować). W Excelu 2021 i Microsoft 365 te same zalety daje jedna funkcja, X.WYSZUKAJ.
Co oznacza 0 w funkcji PODAJ.POZYCJĘ?
Oznacza dopasowanie dokładne. Bez niego PODAJ.POZYCJĘ używa typu 1, dopasowania przybliżonego, które zakłada, że kolumna jest posortowana rosnąco, a na nieposortowanej liście może zwrócić pozycję niewłaściwego wiersza.
Jak wyszukiwać w dwóch kierunkach funkcjami INDEKS i PODAJ.POZYCJĘ?
Podaj funkcji INDEKS całą tabelę i dwie funkcje PODAJ.POZYCJĘ, jedną dla wiersza i jedną dla kolumny: =INDEKS(B2:D5;PODAJ.POZYCJĘ("South";A2:A5;0);PODAJ.POZYCJĘ("Feb";B1:D1;0)) zwraca wartość z przecięcia wiersza South i kolumny Feb.