Funkcja INDEX w Excelu z przykładami formuł

  • Udostępnij To
Michael Brown

W tym poradniku znajdziesz szereg przykładów formuł, które pokazują najbardziej efektywne zastosowania INDEKSU w Excelu.

Ze wszystkich funkcji Excela, których moc jest często niedoceniana i niedostatecznie wykorzystywana, INDEX z pewnością uplasowałby się gdzieś w pierwszej dziesiątce. Tymczasem funkcja ta jest inteligentna, giętka i wszechstronna.

Czym więc jest funkcja INDEX w Excelu? Zasadniczo formuła INDEX zwraca odwołanie do komórki z danej tablicy lub zakresu. Innymi słowy, używasz INDEX, gdy znasz (lub możesz obliczyć) pozycję elementu w zakresie i chcesz uzyskać rzeczywistą wartość tego elementu.

Może to brzmieć nieco banalnie, ale gdy zdasz sobie sprawę z prawdziwego potencjału funkcji INDEX, może ona wprowadzić kluczowe zmiany w sposobie obliczania, analizowania i prezentowania danych w Twoich arkuszach.

    Funkcja INDEX w Excelu - składnia i podstawowe zastosowania

    W programie Excel istnieją dwie wersje funkcji INDEX - forma tablicowa i forma referencyjna. Obie formy mogą być używane we wszystkich wersjach programu Microsoft Excel 365 - 2003.

    Formularz tablicy INDEX

    Formularz tablicowy INDEX zwraca wartość określonego elementu w zakresie lub tablicy na podstawie podanych przez użytkownika numerów wierszy i kolumn.

    INDEX(tablica, wiersz_num, [kolumna_num])
    • macierz - jest zakresem komórek, zakresem nazwanym lub tabelą.
    • suma wierszy - jest numerem wiersza w tablicy, z którego ma zostać zwrócona wartość. Jeśli pominięto row_num, wymagana jest column_num.
    • kolumna_num - jest numerem kolumny, z której ma zostać zwrócona wartość. Jeśli pominięto column_num, wymagane jest row_num.

    Na przykład wzór =INDEX(A1:D6, 4, 3) zwraca wartość na przecięciu 4 wiersza i 3 kolumny w zakresie A1:D6, czyli wartość w komórce C4.

    Aby zapoznać się z działaniem formuły INDEX na rzeczywistych danych, proszę spojrzeć na poniższy przykład:

    Zamiast wpisywać do formuły numery wierszy i kolumn, można dostarczyć odwołania do komórek, aby uzyskać bardziej uniwersalną formułę: =INDEX($B$2:$D$6, G2, G1)

    Zatem ta formuła INDEX zwraca liczbę pozycji dokładnie na przecięciu numeru produktu określonego w komórce G2 (wiersz_num) i numeru tygodnia wpisanego w komórce G1 (kolumna_num).

    Wskazówka. Użycie w argumencie tablicy odwołań bezwzględnych ($B$2:$D$6) zamiast względnych (B2:D6) ułatwia kopiowanie formuły do innych komórek. Alternatywnie można przekształcić zakres na tablicę ( Ctrl + T ) i odwoływać się do niego przez nazwę tabeli.

    Formularz tablicy INDEX - rzeczy do zapamiętania

    1. Jeśli argument array składa się tylko z jednego wiersza lub kolumny, możesz lub nie określić odpowiedni argument row_num lub column_num.
    2. Jeśli argument array zawiera więcej niż jeden wiersz, a argument row_num jest pominięty lub ustawiony na 0, funkcja INDEX zwraca tablicę całej kolumny. Podobnie, jeśli array zawiera więcej niż jedną kolumnę, a argument column_num jest pominięty lub ustawiony na 0, formuła INDEX zwraca cały wiersz. Oto przykład formuły, która demonstruje to zachowanie.
    3. Argumenty row_num i column_num muszą odnosić się do komórki w tablicy, w przeciwnym razie formuła INDEX zwróci błąd #REF!

    Formularz referencyjny INDEX

    Forma odwołania funkcji INDEKS w Excelu zwraca odwołanie do komórki na przecięciu określonego wiersza i kolumny.

    INDEX(reference, row_num, [column_num], [area_num] )
    • odnośnik - to jeden lub kilka zakresów.

      Jeśli wprowadzasz więcej niż jeden zakres, oddziel zakresy przecinkami i zamknij argument odniesienia w nawiasach, na przykład (A1:B5, D1:F5).

      Jeśli każdy zakres w referencji zawiera tylko jeden wiersz lub kolumnę, to odpowiedni argument row_num lub column_num jest opcjonalny.

    • suma wierszy - numer wiersza w zakresie, z którego należy zwrócić odwołanie do komórki, jest to podobne do formy tablicowej.
    • kolumna_num - numer kolumny, z której ma zostać zwrócona referencja do komórki, również działa podobnie jak forma tablicowa.
    • obszar_num - opcjonalny parametr określający, który zakres z argumentu referencji ma zostać użyty. Jeżeli zostanie pominięty, formuła INDEX zwróci wynik dla pierwszego zakresu wymienionego w referencji.

    Na przykład wzór =INDEX((A2:D3, A5:D7), 3, 4, 2) zwraca wartość komórki D7, która znajduje się na przecięciu 3 wiersza i 4 kolumny w drugim obszarze (A5:D7).

    Formularz referencyjny INDEX - rzeczy do zapamiętania

    1. Jeśli argument wiersz_num lub kolumna_num jest ustawiony na zero (0), formuła INDEX zwraca referencję odpowiednio dla całej kolumny lub wiersza.
    2. Jeżeli pominięto zarówno wiersz_num jak i kolumnę_num, funkcja INDEX zwraca obszar określony w argumencie area_num.
    3. Wszystkie argumenty _num (wiersz_num, kolumna_num i obszar_num) muszą odnosić się do komórki w ramach referencji; w przeciwnym razie formuła INDEX zwróci błąd #REF!

    Obie formuły INDEX, które omówiliśmy do tej pory, są bardzo proste i tylko ilustrują koncepcję. Twoje prawdziwe formuły będą prawdopodobnie znacznie bardziej złożone, więc poznajmy kilka najbardziej efektywnych zastosowań INDEX w Excelu.

    Jak używać funkcji INDEX w Excelu - przykłady formuł

    Być może nie ma wielu praktycznych zastosowań Excela INDEX sam w sobie, ale w połączeniu z innymi funkcjami, takimi jak MATCH czy COUNTA, może tworzyć bardzo potężne formuły.

    Dane źródłowe

    Do wszystkich naszych formuł INDEKSOWYCH (poza ostatnią) wykorzystamy poniższe dane. Dla ułatwienia są one zorganizowane w tabeli o nazwie SourceData .

    Zastosowanie tabel lub zakresów nazwanych może nieco wydłużyć formuły, ale czyni je również znacznie bardziej elastycznymi i czytelnymi. Aby dostosować dowolną formułę INDEX dla arkuszy, wystarczy zmodyfikować pojedynczą nazwę, a to w pełni rekompensuje większą długość formuły.

    Oczywiście nic nie stoi na przeszkodzie, abyś użył zwykłych zakresów, jeśli chcesz. W tym przypadku po prostu zastępujesz nazwę tabeli SourceData z odpowiednim odniesieniem do zakresu.

    1. pobranie N-tego elementu z listy

    Jest to podstawowe zastosowanie funkcji INDEX i najprostsza formuła do wykonania. Aby pobrać określony element z listy, wystarczy napisać =INDEX(zakres, n) gdzie zakres jest zakresem komórek lub zakresem nazwanym, oraz n to pozycja elementu, który chcesz uzyskać.

    Podczas pracy z tabelami w Excelu można zaznaczyć kolumnę za pomocą myszy, a Excel wyciągnie nazwę kolumny wraz z nazwą tabeli w formule:

    Aby uzyskać wartość komórki znajdującej się na przecięciu danego wiersza i kolumny, stosujesz to samo podejście z tą różnicą, że podajesz oba te elementy - numer wiersza i numer kolumny. W rzeczywistości widziałeś już taką formułę w działaniu, gdy omawialiśmy formularz tablicy INDEX.

    A oto jeszcze jeden przykład. W naszej przykładowej tabeli, aby znaleźć 2. co do wielkości planetę w Układzie Słonecznym, sortujemy tabelę wg. Średnica kolumny, i użyj następującej formuły INDEX:

    =INDEX(SourceData, 2, 3)

    • Array jest nazwą tabeli lub odwołaniem do zakresu, SourceData w tym przykładzie.
    • Wiersz_num wynosi 2, ponieważ szukasz drugiego elementu listy, który znajduje się w 2.
    • Kolumna_num wynosi 3, ponieważ Średnica to 3 kolumna w tabeli.

    Jeśli chcesz zwrócić nazwę planety zamiast średnicy, zmień column_num na 1. I oczywiście możesz użyć odwołania do komórki w argumentach row_num i/lub column_num, aby uczynić swoją formułę bardziej uniwersalną, jak pokazano na poniższym zrzucie ekranu:

    2. uzyskanie wszystkich wartości w wierszu lub kolumnie

    Oprócz pobierania pojedynczej komórki funkcja INDEX jest w stanie zwrócić tablicę wartości z cały rząd lub kolumna . Aby uzyskać wszystkie wartości z danej kolumny, musisz pominąć argument row_num lub ustawić go na 0. Podobnie, aby uzyskać cały wiersz, przekazujesz pustą wartość lub 0 w column_num.

    Takich formuł INDEX nie można używać samodzielnie, ponieważ Excel nie jest w stanie zmieścić tablicy wartości zwracanych przez formułę w jednej komórce i zamiast tego otrzymalibyśmy błąd #VALUE!. Jeśli jednak użyjemy INDEX w połączeniu z innymi funkcjami, takimi jak SUMA czy AVERAGE, otrzymamy rewelacyjne wyniki.

    Na przykład do obliczenia średniej temperatury planety w Układzie Słonecznym można użyć następującego wzoru:

    =AVERAGE(INDEX(SourceData, , 4))

    W powyższej formule argument column_num wynosi 4, ponieważ. Temperatura w 4 kolumnie w naszej tabeli. Parametr row_num jest pomijany.

    W podobny sposób można znaleźć minimalną i maksymalną temperaturę:

    =MAX(INDEX(SourceData, , 4))

    =MIN(INDEX(SourceData, , 4))

    I oblicz całkowitą masę planety (Masa to 2 kolumna w tabeli):

    =SUM(INDEX(SourceData, , 2))

    Z praktycznego punktu widzenia funkcja INDEX w powyższym wzorze jest zbędna. Można po prostu napisać =AVERAGE(zakres) lub =SUM(zakres) i uzyskać te same wyniki.

    Podczas pracy z rzeczywistymi danymi ta funkcja może okazać się pomocna jako część bardziej złożonych formuł, których używasz do analizy danych.

    3. wykorzystanie INDEKSU z innymi funkcjami (SUM, AVERAGE, MAX, MIN)

    Z poprzednich przykładów można odnieść wrażenie, że formuła INDEX zwraca wartości, ale w rzeczywistości zwraca ona wartość odnośnik do komórki zawierającej wartość. I ten przykład pokazuje prawdziwą naturę funkcji INDEX Excela.

    Ponieważ wynik formuły INDEX jest referencją, możemy go użyć w innych funkcjach, aby stworzyć zakres dynamiczny . brzmi myląco? Poniższy wzór sprawi, że wszystko będzie jasne.

    Załóżmy, że masz wzór =ŚREDNIA(A1:A10) który zwraca średnią wartości w komórkach A1:A10. Zamiast wpisywać zakres bezpośrednio w formule, możesz zastąpić A1 lub A10, lub oba, funkcjami INDEX, jak poniżej:

    =ŚREDNIA(A1 : INDEX(A1:A20,10))

    Obie powyższe formuły dadzą ten sam wynik, ponieważ funkcja INDEX również zwraca odwołanie do komórki A10 (row_num ustawione na 10, col_num pominięte). Różnica polega na tym, że zakres w formule AVERAGE / INDEX jest dynamiczny i po zmianie argumentu row_num w INDEX, zmieni się zakres przetwarzany przez funkcję AVERAGE i formuła zwróci inny wynik.

    Z pozoru droga formuły INDEX wydaje się nadmiernie skomplikowana, jednak ma ona praktyczne zastosowanie, co pokazują poniższe przykłady.

    Przykład 1. Obliczenie średniej z N najlepszych pozycji na liście

    Załóżmy, że chcesz poznać średnią średnicę N największych planet w naszym układzie. Sortujesz więc tabelę według Średnica kolumny od największej do najmniejszej i użyj następującej formuły Średnia / Indeks:

    =AVERAGE(C5 : INDEX(SourceData[Diameter], B1))

    Przykład 2. Suma pozycji pomiędzy podanymi dwoma pozycjami.

    Jeśli chcesz określić górną i dolną granicę pozycji w swojej formule, wystarczy zastosować dwie funkcje INDEX, aby zwrócić pierwszy i ostatni element, który chcesz.

    Na przykład, poniższa formuła zwraca sumę wartości w Średnica kolumna pomiędzy dwoma elementami określonymi w komórkach B1 i B2:

    =SUM(INDEX(SourceData[Średnica],B1) : INDEX(SourceData[Średnica], B2))

    4. formuła INDEX do tworzenia dynamicznych zakresów i list rozwijanych

    Jak to często bywa, kiedy zaczynasz organizować dane w arkuszu, możesz nie wiedzieć, ile ostatecznie będziesz miał wpisów. Nie dotyczy to naszej tabeli planet, która wydaje się być kompletna, ale kto wie...

    W każdym razie, jeśli masz zmieniającą się liczbę elementów w danej kolumnie, powiedzmy od A1 do A n , możesz chcieć utworzyć dynamiczny zakres nazwany, który obejmuje wszystkie komórki z danymi. Przy tym chcesz, aby zakres automatycznie dostosowywał się w miarę dodawania nowych elementów lub usuwania niektórych z istniejących. Na przykład, jeśli obecnie masz 10 elementów, twój zakres nazwany to A1:A10. Jeśli dodasz nowy wpis, zakres nazwany automatycznie rozszerzy się do A1:A11, a jeśli zmienisz zdanie i usuniesz te nowo dodane dane,zakres automatycznie powraca do A1:A10.

    Główną zaletą tego podejścia jest to, że nie musisz stale aktualizować wszystkich formuł w swoim skoroszycie, aby upewnić się, że odnoszą się do prawidłowych zakresów.

    Jednym ze sposobów zdefiniowania zakresu dynamicznego jest użycie funkcji OFFSET Excela:

    =OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)

    Innym możliwym rozwiązaniem jest zastosowanie w Excelu INDEKSU wraz z COUNTA:

    =Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))

    W obu formułach A1 jest komórką zawierającą pierwszy element listy i zakres dynamiczny wytworzony przez obie formuły będzie identyczny.

    Różnica polega na podejściach. O ile funkcja OFFSET przesuwa się od punktu wyjścia o określoną liczbę wierszy i/lub kolumn, o tyle INDEX znajduje komórkę na przecięciu danego wiersza i kolumny. Funkcja COUNTA, używana w obu formułach, pobiera liczbę niepustych komórek w interesującej nas kolumnie.

    W tym przykładzie w kolumnie A jest 9 niepustych komórek, więc COUNTA zwraca 9. W konsekwencji INDEX zwraca $A$9, czyli ostatnią użytą komórkę w kolumnie A (zwykle INDEX zwraca wartość, ale w tej formule operator referencji (:) zmusza go do zwrócenia referencji). A ponieważ $A$1 jest naszym punktem wyjścia, ostatecznym wynikiem formuły jest zakres $A$1:$A$9.

    Poniższy zrzut ekranu demonstruje, jak można użyć takiej formuły Index do utworzenia dynamicznej listy rozwijanej.

    Wskazówka. Najprostszym sposobem na stworzenie dynamicznie aktualizowanej listy rozwijanej jest zrobienie listy nazwanej na podstawie tabeli. W tym przypadku nie będziesz potrzebował żadnych złożonych formuł, ponieważ tabele Excela są dynamicznymi zakresami per se.

    Możesz również użyć funkcji INDEX do tworzenia zależnych list rozwijanych, a poniższy tutorial wyjaśnia kroki: Tworzenie kaskadowej listy rozwijanej w Excelu.

    5. potężne Vlookups z INDEX / MATCH

    Wykonywanie wyszukiwań pionowych - w tym miejscu funkcja INDEX naprawdę błyszczy. Jeżeli kiedykolwiek próbowałeś używać funkcji VLOOKUP w Excelu, to doskonale zdajesz sobie sprawę z jej licznych ograniczeń, takich jak brak możliwości wyciągania wartości z kolumn znajdujących się po lewej stronie kolumny wyszukiwania czy limit 255 znaków dla wartości wyszukiwania.

    Łącznik INDEX / MATCH jest pod wieloma względami lepszy od VLOOKUP:

    • Brak problemów z lewymi vlookups.
    • Brak ograniczenia na rozmiar wartości lookup.
    • Nie jest wymagane sortowanie (VLOOKUP z dopasowaniem przybliżonym wymaga sortowania kolumny lookup w porządku rosnącym).
    • Możesz swobodnie wstawiać i usuwać kolumny w tabeli bez aktualizacji każdej powiązanej formuły.
    • I ostatni, ale nie najmniej, INDEX / MATCH nie spowalnia twojego programu Excel, jak wiele Vlookups zrobić.

    Używasz INDEX / MATCH w następujący sposób:

    =INDEX ( aby zwrócić wartość z kolumny , (MATCH ( wartość podglądu , kolumna do wyszukiwania w stosunku do , 0))

    Na przykład, jeśli odwrócimy naszą tabelę źródłową tak, że Nazwa planety staje się najbardziej prawą kolumną, formuła INDEX / MATCH nadal pobiera pasującą wartość z lewej kolumny bez problemu.

    Więcej wskazówek i przykład formuły znajdziesz w tutorialu Excel INDEX / MATCH.

    6. formuła Excel INDEX, aby uzyskać 1 zakres z listy zakresów

    Innym inteligentnym i potężnym zastosowaniem funkcji INDEX w Excelu jest możliwość uzyskania jednego zakresu z listy zakresów.

    Załóżmy, że masz kilka list z różną liczbą elementów w każdej. Wierz mi lub nie, możesz obliczyć średnią lub sumę wartości w dowolnym wybranym zakresie za pomocą jednej formuły.

    Po pierwsze, tworzymy nazwany zakres dla każdej listy; niech to będzie PlanetyD oraz MoonsD w tym przykładzie:

    Mam nadzieję, że powyższy obrazek wyjaśnia uzasadnienie nazw zakresów : ) BTW, the Księżyce tabela jest daleka od kompletności, w naszym Układzie Słonecznym jest 176 znanych naturalnych księżyców, sam Jowisz ma ich obecnie 63 i liczy. Dla tego przykładu wybrałem losowo 11, no... może nie całkiem losowo - księżyców o najpiękniejszych nazwach : )

    Proszę wybaczyć dygresję, wracamy do naszego wzoru INDEX. Zakładając, że PlanetyD to twój zakres 1 i MoonsD to zakres 2, a komórka B1 to miejsce, w którym umieściłeś numer zakresu, możesz użyć następującej formuły Indeks, aby obliczyć średnią wartości w wybranym nazwanym zakresie:

    =AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))

    Zwróć uwagę, że teraz używamy Referencyjnej formy funkcji INDEX, a liczba w ostatnim argumencie (area_num) mówi formule, który zakres ma wybrać.

    Na poniższym zrzucie ekranu obszar_num (komórka B1) jest ustawiony na 2, więc formuła oblicza średnią średnicę Księżyce ponieważ zakres MoonsD zajmuje 2 miejsce w argumencie odniesienia.

    Jeśli pracujesz z wieloma listami i nie chcesz zawracać sobie głowy zapamiętywaniem powiązanych numerów, możesz zastosować zagnieżdżoną funkcję IF, która zrobi to za Ciebie:

    =AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))

    W funkcji JEŻELI używasz kilku prostych i łatwych do zapamiętania nazw list, które chcesz, aby Twoi użytkownicy wpisywali w komórce B1 zamiast liczb. Pamiętaj o tym, aby formuła działała poprawnie, tekst w B1 powinien być dokładnie taki sam (wielkość liter nie ma znaczenia), jak w parametrach JEŻELI, w przeciwnym razie Twoja formuła Indeks rzuci błąd #VALUE.

    Aby formuła była jeszcze bardziej przyjazna dla użytkownika, możesz użyć Walidacji danych, aby utworzyć listę rozwijaną z predefiniowanymi nazwami, aby zapobiec błędom ortograficznym i błędom w druku:

    Na koniec, aby uczynić swoją formułę INDEX absolutnie doskonałą, można ją obudować funkcją IFERROR, która będzie podpowiadać użytkownikowi wybór elementu z listy rozwijanej, jeśli nie dokonano jeszcze żadnego wyboru:

    =IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planeta", 1, IF(B1="księżyc", 2)))), "Proszę wybrać listę!")

    Tak właśnie używa się formuł INDEX w Excelu. Mam nadzieję, że te przykłady pokazały Ci sposób na wykorzystanie potencjału funkcji INDEX w Twoich arkuszach. Dziękuję za przeczytanie!

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.