Pracując w Excelu często przychodzi potrzeba przeprowadzenia wyszukiwania na określonym zakresie. Pierwsze rozwiązanie, które przychodzi do głowy to funkcja WYSZUKAJ.PIONOWO oraz WYSZUKAJ.POZIOMO. Świetnie! Ale co w momencie, w którym wyszukiwana wartość nie jest w pierwszej kolumnie bądź w pierwszym wierszu? Pojawia się problem. No oczywiście, można zmodyfikować tabelę i korzystać z powyższych funkcji, ale nie zawsze jest taka możliwość. Są sytuacje, w których tabela pod żadnym pozorem nie może być edytowana. I co wtedy? Z pomocą przychodzą dwie funkcje, które użyte razem są niesamowicie potężnym narzędziem. Mianowicie chodzi o funkcję INDEX() oraz PODAJ.POZYCJĘ(). Ale po kolei.
Funkcja INDEKS() zwraca wartość znajdująca się na przecięciu wiersza i kolumny w tablicy. Innymi słowy, należy w niej podać numer wiersza i kolumny, z której chcemy odczytać dane. Składnia tej funkcji jest następująca:
INDEKS(tablica; nr_wiersza; [nr_kolumny])
gdzie:
Inną postacią funkcji INDEKS(), która ma zastosowanie podczas przeszukiwania wielu tablic jest następująca:
INDEKS(odwołanie; nr_wiersza; [nr_kolumny]; [nr_obszaru])
Przykładowo, chcąc odczytać, z tabeli poniżej, zysk z maja możemy wykorzystać funkcję INDEKS(), w której pierwszym argumentem jest cała tabela zawierająca kwoty, nr_wiersza przyjmuje wartość 3, ponieważ w trzeci wiersz odpowiada za zysk. Trzecim argumentem jest 5, ponieważ piąta kolumna odpowiada za miesiąc maj.
Przecięcie 3 wiersza i 5 kolumny wskazuje zysk z maja.
Funkcja PODAJ.POZYCJĘ zwraca pozycję komórki w określonej tablicy, w której znajduje się dany ciąg znaków. Jej składnia jest następująca:
PODAJ.POZYCJĘ(szukana_wartość; przeszukiwana_tablica; [typ_porównania])
gdzie:
Przykładem użycia może być konieczność znalezienia komórki, w której jest zapisany styczeń.
Jak widać powyżej, argumentem szukana_wartość jest “styczeń”, przeszukiwaną_tablicą jest wiersz, w którym są zapisane miesiące, natomiast ostatnim argumentem jest 0, ponieważ interesuje nas dokładne dopasowanie.
Funkcja INDEKS potrzebuje argumentów w postaci numeru wiersza i numeru kolumny. Jednakże, nie zawsze jest możliwość podania go wprost, jako konkretną wartość. Tutaj z pomocą może przyjść funkcja PODAJ.POZYCJĘ, które jest w stanie zwrócić wartość mogącą być argumentem funkcji INDEKS.
Ale jak to wygląda w praktyce? Otóż, jeśli mamy tabelę, w której każdy wiersz oznacza kolejno przychód, koszt przychodu i zysk. Kolumny natomiast reprezentują kolejne miesiące, naszym zadaniem jest automatyczne wyświetlanie tych wartości w zależności od wybranego miesiąca w tabeli poniżej, to funkcje WYSZUKAJ.PIONOWO oraz WYSZUKAJ.POZIOMO w żaden sposób nie zdadzą egzaminu, ponieważ kolumny i wiersze nagłówkowe nie są przedstawione jako pierwsze!
Tutaj najwygodniejszym rozwiązaniem będzie zagnieżdżenie funkcji PODAJ.POZYCJĘ w funkcji INDEKS.
Najbardziej zewnętrzną funkcją w powyższym przykładzie jest funkcja INDEKS, która jako pierwszy argument, przyjmuje obszar z kwotami. Został on zablokowany, aby można było przeciągnąć funkcję do kolejnych komórek w kolumnie. Drugi i trzeci argument funkcji INDEKS, to funkcja PODAJ.POZYCJĘ szukająca odpowiednio miesiąca w wierszu 4 i rodzaju kwoty w kolumnie N. Taka forma wykorzystania funkcji INDEKS i PODAJ.POZYCJE jest bardzo elastyczna i daje naprawdę szereg różnych możliwości.
Funkcja WYSZUKAJ.PIONOWO i WYSZUKAJ.POZIOMO są dwiema bardzo dobrze znanymi funkcjami, jednakże funkcje INDEKS i PODAJ.POZYCJE mają jedną bardzo dużą przewagę nad funkcjami WYSZUKAJ. Jest to mianowicie ogromna elastyczność, która nie wymusza konkretnego ułożenia tabeli. Ponadto funkcje INDEKS i PODAJ.POZYCJE działają szybciej.
Niestety, takie zagnieżdżanie często wywołuje strach wśród użytkowników Excela, ale naprawdę warto go przezwyciężyć, ponieważ korzyści płynące z takiego użycia są potężne..
Chcesz zdobyć wiedzę z Excela? Sprawdź nasze kursy informatyczne, oferujemy w nich między innymi kurs Excel oraz Kurs Excel z tabeli przestawnych. Sprawdź również poradnik o wybieraniu elementu z listy – funkcja WYBIERZ