Menu

INDEKS i PODAJ.POZYCJĘ (INDEX MATCH) w Excelu

=INDEKS(C2:C6;PODAJ.POZYCJĘ(F2;A2:A6;0)) znajduje wiersz F2 w kolumnie A i zwraca wartość z tego wiersza kolumny C. Szuka w lewo, wyszukuje w dwóch kierunkach i działa w każdej wersji Excela.

Każdy arkusz na tej stronie działa na żywo: zmień liczbę albo formułę, a się przeliczy.

=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.

Cena produktu
G2
ABCDEFG
1ProductCategoryPriceCodeLook forPrice
2AppleFruit$1.20P-101Pear$1.50
3PearFruit$1.50P-102
4CarrotVegetable$0.80P-205
5BreadBakery$2.40P-310
6MilkDairy$1.10P-412
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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ęść.

Dwa kroki, każdy w swojej komórce
G3
ABCDEFG
1ProductCategoryPriceCodeLook forBread
2AppleFruit$1.20P-101Position4
3PearFruit$1.50P-102Price$2.40
4CarrotVegetable$0.80P-205
5BreadBakery$2.40P-310
6MilkDairy$1.10P-412
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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 nie C1: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.

Nazwa produktu na podstawie kodu
G2
ABCDEFG
1ProductCategoryPriceCodeCodeProduct
2AppleFruit$1.20P-101P-310Bread
3PearFruit$1.50P-102
4CarrotVegetable$0.80P-205
5BreadBakery$2.40P-310
6MilkDairy$1.10P-412
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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ę.

Sprzedaż według regionu i miesiąca
B8
ABCD
1RegionJanFebMar
2North4,2003,9004,800
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
6RegionEast
7MonthMar
8Sales5,600
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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:C6 na D2:D6 i 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

Eksport stanów magazynowych
G2
ABCDEFG
1CodePriceStockProductLook forPrice
2P-101$1.2040AppleMilk
3P-102$1.5025Pear
4P-205$0.8060Carrot
5P-310$2.4015Bread
6P-412$1.1030Milk
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.

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

Wyniki testów
B9
ABCD
1StudentMathScienceArt
2Ana788592
3Ben647188
4Cara958973
5Dev826779
6
7StudentCara
8SubjectScience
9Score
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.

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.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ