Funkcja INDEKS w Excelu

Omówię w tym wpisie funkcję INDEKS. Nie sposób pisać o niej, nie wspominając o PODAJ.POZYCJĘ, bo te dwie funkcje Excela występują często w duecie. Służą one do wyszukiwania, podobnie jak WYSZUKAJ.PIONOWO, są jednak bardziej „elastyczne”, choć na początku wydają się trudniejsze w użyciu.


SPIS TREŚCI


Do czego służy w Excelu funkcja INDEKS

Zacznę wytłumaczenia do czego, tak ogólnie, służy funkcja INDEKS. Konkretne jej zastosowanie w pracy/biznesie omówię nieco później.

Porównuję zazwyczaj INDEKS do gry w statki… masz:

      1. Planszę
    1. Podajesz numer wiersza
    2. Podajesz numer kolumny

I wtedy dowiadujesz się w co trafiłeś. Tak wygląda, w moim nieco osobliwym tłumaczeniu, gra w statki, prawda? Tak też działa w Excelu funkcja INDEKS – zaznaczasz jakąś tabelę i mówisz, że szukasz wartości na przecięciu konkretnego wiersza z konkretną kolumną. Zobaczmy to na przykładzie.

W tabeli znajduje się cennik produktów. W kolejnych wierszach są kolejne produkty, a w kolumnach są kolejne stawki rabatu (zależne od tego, jak duży był zakup). Powiedzmy, że chcesz wiedzieć ile kosztuje produkt CCC (cena jednostkowa), gdy kupisz go 20 sztuk. Idziesz więc do wiersza gdzie jest CCC i kolumny gdzie jest 20 i na ich przecięciu znajduje się szukana cena.

Rysunek 1. Cennik – na przecięciu CCC i ceny za 20 sztuk znajduje się cena 130 zł.

Gdy użyjesz do tego INDEKSu, formuła będzie wyglądać tak:

=INDEKS(B2:E5;3;3)

Rysunek 2. Funkcja INDEKS do wyciągnięcia ceny produktu CCC dla 20 sztuk.

Możesz zapytać – „ale skąd będę wiedział gdzie jest wiersz z CCC i kolumna z 20?”, albo „co mi da INDEKS, skoro widzę gdzie jest CCC i 20, więc mogę sobie sam sprawdzić tę cenę?”. Oczywiście ta funkcja przydaje się przy bardziej skomplikowanych przypadkach, a podałem na razie prosty przykład, aby łatwo było zrozumieć mechanizm działania INDEKSu.


Budowa INDEKSu w Excelu

Mogę więc teraz przejść do usystematyzowania informacji o budowie tej funkcji. Składa się z 3 argumentów:

    • tablica – wskaż tabelę, z której chcesz wyszukać pewną wartość. Może to być również pojedynczy wiersz lub pojedyncza kolumna.
    • nr_wiersza – podaj numer wiersza, w ramach zaznaczonej tabeli, z którego chcesz uzyskać wartość. Nie jest więc ważne numer tego wiersza w całym arkuszu, ale w twojej tabeli.
    • nr_kolumny – podaj numer kolumny, w ramach zaznaczonej tabeli, z której chcesz uzyskać wartość. Jeśli go pominiesz, to domyślnie funkcja założy, że wybrano kolumnę nr 1.

INDEKS w połączeniu z PODAJ.POZYCJĘ

INDEKS używany jest często z PODAJ.POZYCJĘ i dopiero użycie ich razem, daje w Excelu prawdziwą wartość. Poniżej w kilku zdaniach wyjaśnię jak działa funkcja PODAJ.POZYCJĘ, a jeśli chcesz ją poznać dokładnie to odsyłam Cię do wpisu na temat funkcji PODAJ.POZYCJĘ.

PODAJ.POZYCJĘ informuje o tym, na jakiej pozycji znajduje się szukana wartość. Jeśli np. masz kolumnę z nazwiskami i szukasz nazwiska „Wróbel” i to nazwisko jest piąte z kolei (patrząc od góry), to wynikiem funkcji będzie właśnie 5.

Rysunek 3. Poniższa funkcja wyświetli liczbę 5, bo „Wróbel” jest piątym nazwiskiem na liście.

Oto jej budowa:

    1. Pierwszy argument, to wartość, której szukasz.
    2. Drugi argument, to pojedyncza kolumna lub pojedynczy wiersz, w którym ta wartość się znajduje.
    3. Trzeci argument to zazwyczaj liczba 0.

PODAJ.POZYCJĘ często używana jest do obliczenia, w którym wierszu i/lub kolumnie znajduje się pewna wartość, a INDEKS potem tę wartość z tabeli wyciąga.


Przykłady zastosowania funkcji INDEKS w Excelu

Szukanie wartości po podaniu numeru wiersza i kolumny

Najprostszy sposób wykorzystania tej funkcji polega na podaniu jej wprost numeru wiersza i numery kolumny w ramach tabeli. Wartość na skrzyżowaniu tego wiersza i kolumny zostanie wyświetlona.

W zadaniu, widać tabelę prezentującą wartość sprzedaży w poszczególnych dniach kolejnych miesięcy. U góry, można wybrać dzień i miesiąc, dla których ta wartość zostanie wyszukana. Numery dni oznaczają jednocześnie numery wierszy w tabeli, a numery miesięcy oznaczają numery kolumn. Wyszukanie odbywa się za pomocą funkcji INDEKS:

Rysunek 4. Podanie numeru wiersza i numeru kolumny tabeli.

    • Argument 1 – tabela z szukanymi wartościami. Zazwyczaj nie zaznacza się nagłówków tabeli (pierwszego wiersza i pierwszej kolumny). Dlaczego? Bo jeśli zaznaczyć pierwszą kolumnę (o nazwie „Numer dnia”), to żeby wyciągnąć jakąś wartość z kolumny styczniowej, trzeba by było podać dla kolumny nr 2, co jest nieintuicyjne (choć oczywiście można tak zrobić).
    • Argument 2 – numer wiersza, liczony w ramach zaznaczonej tabeli, równoznaczny w tym zadaniu numerowi dnia – czyli liczba 3. Nie zawsze numer wiersza jest tak łatwo otrzymać – trzeba się wtedy wspomóc innymi funkcjami, co zostało opisane w kolejnych przykładach dotyczących funkcji INDEKS.
    • Argument 3 – numer kolumny, liczony w ramach zaznaczonej tabeli, równoznaczny w tym zadaniu numerowi miesiąca – czyli liczba 2.

Szukanie wartości po znalezieniu numeru wiersza i/lub kolumny

Prawdziwa wartość tej funkcji, okazuje się wtedy, gdy z góry nie wiadomo, z którego wiersza i kolumny należy pobrać wartość, tylko ten numer wiersza i kolumny należy obliczyć. Co to oznacza? Chcesz pobrać np. cenę produktu i nie wiesz, w którym wierszu ten produkt jest zapisany, jednak znasz jego nazwę i możesz go wyszukać.

W zadaniu należy znaleźć wagę kilku podanych drukarek. Wiadomo, w której kolumnie znajduje się waga – w kolumnie „Waga”. Nie wiadomo jednak z góry, w którym wierszu znajdują się szukane drukarki. Należy więc znaleźć wiersz, w którym znajdują się podane nazwy drukarek, a następnie z tych wierszy trzeba pobrać ich wagę. Użyto funkcji INDEKS, wspomaganej przez funkcję PODAJ.POZYCJĘ. Jest to bardzo częste połączenie, które pozwala w wygodny sposób wyszukiwać dane w tabelach:

Rysunek 5. Wyszukanie wagi po nazwie drukarki.

    • Argument 1 – tabela z szukanymi wartościami. W tym przypadku zaznaczono całe kolumny arkusza.
    • Argument 2 – numer wiersza, liczony w ramach zaznaczonej tabeli, równoznaczny w tym zadaniu numerowi wiersza, w którym znaleziono nazwę drukarki. Nazwa drukarki jest szukana za pomocą funkcji PODAJ.POZYCJĘ, która w efekcie zwraca numer tego wiersza. Bardzo ważne jest, aby argument nr 1 funkcji INDEKS oraz argument nr 2 funkcji PODAJ.POZYCJĘ zaczynały się w tym samym miejscu – w tym zadaniu są to w obu przypadkach całe kolumny arkusza. Dlaczego to jest ważne? Bo za pomocą PODAJ.POZYCJĘ obliczam jakąś pozycję, liczoną względnie w ramach określonych komórek, więc jeśli używam później tej pozycji w funkcji INDEKS, to muszę jej używać w analogicznie określonych komórkach, aby ta pozycja miała sens.
    • Argument 3 – numer kolumny, liczony w ramach zaznaczonej tabeli – w tym przypadku zaznaczona jest tylko jedna kolumna, więc liczba 1. Jeśli tabela jest jednokolumnowa, to może ten argument równie dobrze pominąć.

Wypełnianie tabeli danymi, na podstawie tabelki pomocniczej

Nieraz w naszych tabelach potrzebujemy umieścić jedną z kilku wartości, w zależności od innych danych. Zamiast pisać skomplikowaną formułę, z kilkoma warunkami, możesz stworzyć tabelkę pomocniczą, a następnie wyszukiwać w niej odpowiedzi, za pomocą INDEKSU i PODAJ.POZYCJĘ.

W zadaniu, widać kwoty sprzedaży, podane w różnych walutach. Należy przeliczyć wszystkie kwoty na PLN, czyli trzeba każdą kwotę przemnożyć przez odpowiedni kurs. W tabeli obok wszystkie kursy podane są w stosunku do PLN. Problemem jest to, że za każdym razem waluta może być inna, więc i inny kurs należy wykorzystać w obliczeniach.

Funkcja INDEKS będzie zwracała wartość z kolumny „Kurs”, na podstawie pozycji odpowiedniej waluty, sprawdzonej w kolumnie „Waluta sprzedaży”.

Rysunek 6. Wyszukanie kursu na podstawie nazwy waluty w tabelce pomocniczej.

    • Argument 1 – kolumna z wartościami, czyli kolumna „Kurs”.
    • Argument 2 – numer wiersza, liczony w ramach tabeli pomocniczej. Zależy on od waluty sprzedaży, która to jest sprawdzana za pomocą funkcji PODAJ.POZYCJĘ.
    • Argument 3 – numer kolumny – argument nr 1 to zakres jednokolumnowy, więc jest zapisana tutaj liczba 1.

Wyszukiwanie w wielu obszarach – wersja 4-argumentowa

Funkcja INDEKS, generalnie rzecz biorąc, służy do wyświetlenie odpowiedniej wartości z tabeli. Czasem może się jednak zdarzyć tak, że wartość znajduje się w jednej z kilku tabel i nie wiadomo z góry, w której. Wówczas, możesz użyć drugiej, mniej popularnej, formy funkcji INDEKS, która składa się z 4 argumentów:

    • Argument 1 – wskazanie wielu tabel (może być także jedna tabela), z których chcesz wyszukać jakąś wartość.
    • Argument 2 – numer wiersza, w ramach tabeli zaznaczonej w argumencie nr 1, z którego chcesz zobaczyć wartość.
    • Argument 3 – numer kolumny, w ramach tabeli zaznaczonej w argumencie nr 1, z której chcesz zobaczyć wartość. Jeśli go pominiesz, to domyślnie funkcja odniesie się do kolumny nr 1.
    • Argument 4 – numer obszaru, czyli wskazanie, w którym z obszarów podanych w argumencie nr 1, należy wyszukiwać wartości.

W zadaniu, podane są ceny różnych produktów rolnych – każdy produkt to osobna tabela. Dla każdego z nich, zapisane są ceny dla czterech kwartału w roku oraz w podziale na trzy gatunki jakości. Należy stworzyć formułę, która po podaniu nazwy produktu, kwartału oraz gatunku, wyświetli jego cenę:

Rysunek 7. Funkcja INDEKS z czteroma argumentami, przeszukująca wiele tabel.

  • Argument 1 – wszystkie obszary, czyli cztery tabele, dla czterech produktów.
  • Argument 2 – numer wiersza, obliczonych dla odpowiedniego kwartału, za pomocą PODAJ.POZYCJĘ.
  • Argument 3 – numer kolumny, obliczonych dla odpowiedniego gatunku, za pomocą PODAJ.POZYCJĘ.
  • Argument 4 – numer obszaru, wyszukany na podstawie nazwy produktu.

Oto formuła:

=INDEKS((Ziemniaki;Pszenica;Żyto;Jęczmień);PODAJ.POZYCJĘ(C5;B12:B16;0);PODAJ.POZYCJĘ(D5;B12:E12;0);WYSZUKAJ.PIONOWO(B5;O12:P15;2;0))

Pamiętaj, że używając tej formy INDEKSU, jeśli obszary w argumencie nr 1 nie leżą obok siebie, to muszą wszystkie być zapisane w środku nawiasów.