Inhaltsverzeichnis
In diesem Lernprogramm finden Sie eine Reihe von Formelbeispielen, die die effizienteste Verwendung von INDEX in Excel demonstrieren.
Von allen Excel-Funktionen, deren Leistungsfähigkeit oft unterschätzt und zu wenig genutzt wird, gehört INDEX sicher zu den Top 10. Inzwischen ist diese Funktion intelligent, geschmeidig und vielseitig.
Was ist also die INDEX-Funktion in Excel? Im Wesentlichen gibt eine INDEX-Formel einen Zellverweis innerhalb eines bestimmten Feldes oder Bereichs zurück. Mit anderen Worten: Sie verwenden INDEX, wenn Sie die Position eines Elements in einem Bereich kennen (oder berechnen können) und den aktuellen Wert dieses Elements abrufen möchten.
Das mag etwas trivial klingen, aber wenn Sie erst einmal das wirkliche Potenzial der INDEX-Funktion erkannt haben, kann sie die Art und Weise, wie Sie Daten in Ihren Arbeitsblättern berechnen, analysieren und präsentieren, entscheidend verändern.
Excel INDEX-Funktion - Syntax und grundlegende Anwendungen
Es gibt zwei Versionen der INDEX-Funktion in Excel - die Array-Form und die Referenz-Form. Beide Formen können in allen Versionen von Microsoft Excel 365 - 2003 verwendet werden.
INDEX-Array-Formular
Das INDEX-Array-Formular gibt den Wert eines bestimmten Elements in einem Bereich oder Array basierend auf den von Ihnen angegebenen Zeilen- und Spaltennummern zurück.
INDEX(array, zeilen_num, [spalten_num])- Array - ist ein Bereich von Zellen, ein benannter Bereich oder eine Tabelle.
- zeilen_nummer - ist die Zeilennummer im Array, aus dem ein Wert zurückgegeben werden soll. Wenn row_num weggelassen wird, ist column_num erforderlich.
- spalte_num - ist die Nummer der Spalte, aus der ein Wert zurückgegeben werden soll. Wenn column_num weggelassen wird, ist row_num erforderlich.
Zum Beispiel kann die Formel =INDEX(A1:D6, 4, 3)
gibt den Wert am Schnittpunkt der 4. Zeile und 3. Spalte im Bereich A1:D6 zurück, also den Wert in Zelle C4.
Um eine Vorstellung davon zu bekommen, wie die INDEX-Formel mit echten Daten funktioniert, sehen Sie sich bitte das folgende Beispiel an:
Anstatt die Zeilen- und Spaltennummern in die Formel einzugeben, können Sie die Zellbezüge angeben, um eine universellere Formel zu erhalten: =INDEX($B$2:$D$6, G2, G1)
Diese INDEX-Formel gibt also die Anzahl der Artikel zurück, die genau an der Schnittstelle zwischen der in G2 angegebenen Produktnummer (Zeilennummer) und der in Zelle G1 eingegebenen Wochennummer (Spaltennummer) liegen.
Tipp: Die Verwendung von absoluten Referenzen ($B$2:$D$6) anstelle von relativen Referenzen (B2:D6) im Array-Argument erleichtert das Kopieren der Formel in andere Zellen. Alternativ können Sie einen Bereich in eine Tabelle umwandeln ( Strg + T ) und sich über den Tabellennamen darauf beziehen.
INDEX-Array-Formular - was zu beachten ist
- Wenn das Array-Argument nur aus einer Zeile oder Spalte besteht, können Sie das entsprechende Argument row_num oder column_num angeben oder nicht.
- Wenn das Argument array mehr als eine Zeile enthält und row_num weggelassen oder auf 0 gesetzt wird, gibt die INDEX-Funktion ein Array der gesamten Spalte zurück. Wenn array mehr als eine Spalte enthält und das Argument column_num weggelassen oder auf 0 gesetzt wird, gibt die INDEX-Formel die gesamte Zeile zurück. Hier ist ein Formelbeispiel, das dieses Verhalten demonstriert.
- Die Argumente row_num und column_num müssen sich auf eine Zelle innerhalb des Arrays beziehen; andernfalls gibt die INDEX-Formel den Fehler #REF! zurück.
INDEX-Referenzformular
Die Referenzform der Excel-Funktion INDEX gibt den Zellbezug am Schnittpunkt der angegebenen Zeile und Spalte zurück.
INDEX(reference, row_num, [column_num], [area_num] )- Referenz - ist ein oder mehrere Bereiche.
Wenn Sie mehr als einen Bereich eingeben, trennen Sie die Bereiche durch Kommata und schließen Sie das Bezugsargument in Klammern ein, z. B. (A1:B5, D1:F5).
Wenn jeder Bereich im Verweis nur eine Zeile oder Spalte enthält, ist das entsprechende Argument row_num oder column_num optional.
- zeilen_zahl - die Zeilennummer im Bereich, aus dem ein Zellverweis zurückgegeben werden soll, ähnlich wie bei der Array-Form.
- spalte_num - die Spaltennummer, von der eine Zellreferenz zurückgegeben werden soll, funktioniert ähnlich wie das Array-Formular.
- bereich_nummer - ein optionaler Parameter, der angibt, welcher Bereich aus dem Referenzargument verwendet werden soll. Wird er weggelassen, gibt die INDEX-Formel das Ergebnis für den ersten in der Referenz aufgeführten Bereich zurück.
Zum Beispiel die Formel =INDEX((A2:D3, A5:D7), 3, 4, 2)
gibt den Wert der Zelle D7 zurück, die sich am Schnittpunkt der 3. Zeile und 4. Spalte im zweiten Bereich (A5:D7) befindet.
INDEX-Referenzformular - was ist zu beachten?
- Wenn das Argument row_num oder column_num auf Null (0) gesetzt ist, gibt eine INDEX-Formel die Referenz für die gesamte Spalte bzw. Zeile zurück.
- Wenn sowohl row_num als auch column_num weggelassen werden, gibt die Funktion INDEX den im Argument area_num angegebenen Bereich zurück.
- Alle _num-Argumente (row_num, column_num und area_num) müssen sich auf eine Zelle innerhalb einer Referenz beziehen; andernfalls gibt die INDEX-Formel den Fehler #REF! zurück.
Die beiden bisher besprochenen INDEX-Formeln sind sehr einfach und dienen nur zur Veranschaulichung des Konzepts. Ihre wirklichen Formeln werden wahrscheinlich viel komplexer sein, also lassen Sie uns einige der effizientesten Verwendungen von INDEX in Excel untersuchen.
Wie verwendet man die INDEX-Funktion in Excel - Formelbeispiele
Vielleicht gibt es nicht viele praktische Verwendungsmöglichkeiten für Excel INDEX allein, aber in Kombination mit anderen Funktionen wie MATCH oder COUNTA lassen sich damit sehr leistungsfähige Formeln erstellen.
Daten zur Quelle
Für alle unsere INDEX-Formeln (mit Ausnahme der letzten) verwenden wir die folgenden Daten, die der Einfachheit halber in einer Tabelle mit dem Namen QuellDaten .
Die Verwendung von Tabellen oder benannten Bereichen kann dazu führen, dass Formeln etwas länger werden, macht sie aber auch wesentlich flexibler und besser lesbar. Um eine INDEX-Formel für Ihre Arbeitsblätter anzupassen, müssen Sie nur einen einzigen Namen ändern, und das macht eine längere Formel vollständig wett.
Natürlich hindert Sie nichts daran, die üblichen Bereiche zu verwenden, wenn Sie das möchten. In diesem Fall ersetzen Sie einfach den Tabellennamen QuellDaten mit der entsprechenden Bereichsreferenz.
1. das N-te Element aus der Liste holen
Dies ist die grundlegende Anwendung der INDEX-Funktion und die einfachste Formel, die man machen kann. Um einen bestimmten Eintrag aus der Liste zu holen, schreibt man einfach =INDEX(Bereich, n)
wobei Bereich ist ein Bereich von Zellen oder ein benannter Bereich, und n ist die Position des Objekts, das Sie erhalten möchten.
Wenn Sie mit Excel-Tabellen arbeiten, können Sie die Spalte mit der Maus markieren, und Excel zieht den Namen der Spalte zusammen mit dem Namen der Tabelle in die Formel:
Um den Wert der Zelle am Schnittpunkt einer gegebenen Zeile und Spalte zu erhalten, verwenden Sie den gleichen Ansatz, mit dem einzigen Unterschied, dass Sie beides angeben - die Zeilennummer und die Spaltennummer. Tatsächlich haben Sie eine solche Formel bereits in Aktion gesehen, als wir die INDEX-Arrayform besprochen haben.
Und hier noch ein Beispiel: Um in unserer Beispieltabelle den zweitgrößten Planeten im Sonnensystem zu finden, sortieren Sie die Tabelle nach dem Durchmesser Spalte und verwenden Sie die folgende INDEX-Formel:
=INDEX(QuellDaten, 2, 3)
Array
ist der Tabellenname oder ein Bereichsbezug, QuellDaten in diesem Beispiel.Zeile_Zahl
ist 2, weil Sie nach dem zweiten Element in der Liste suchen, das sich in der 2.Spalte_Zahl
ist 3, weil Durchmesser ist die 3. Spalte der Tabelle.
Wenn Sie den Namen des Planeten statt des Durchmessers zurückgeben möchten, ändern Sie column_num in 1. Und natürlich können Sie einen Zellbezug in den Argumenten row_num und/oder column_num verwenden, um Ihre Formel vielseitiger zu gestalten, wie in der folgenden Abbildung gezeigt:
2. alle Werte in einer Zeile oder Spalte zu erhalten
Neben der Abfrage einer einzelnen Zelle kann die INDEX-Funktion auch ein Array von Werten aus der gesamte Reihe oder Spalte Um alle Werte einer bestimmten Spalte zu erhalten, müssen Sie das Argument row_num weglassen oder auf 0 setzen. Um die gesamte Zeile zu erhalten, übergeben Sie einen leeren Wert oder 0 in column_num.
Solche INDEX-Formeln können kaum allein verwendet werden, da Excel nicht in der Lage ist, das von der Formel zurückgegebene Wertefeld in einer einzigen Zelle unterzubringen, und Sie stattdessen die Fehlermeldung #VALUE! erhalten würden. Wenn Sie INDEX jedoch in Verbindung mit anderen Funktionen wie SUMME oder MITTELWERT verwenden, erhalten Sie fantastische Ergebnisse.
Sie könnten zum Beispiel die folgende Formel verwenden, um die durchschnittliche Temperatur der Planeten im Sonnensystem zu berechnen:
=AVERAGE(INDEX(QuellDaten, , 4))
In der obigen Formel ist das Argument column_num 4, weil Temperatur in der 4. Spalte unserer Tabelle. Der Parameter row_num wird weggelassen.
In ähnlicher Weise können Sie die Mindest- und Höchsttemperaturen ermitteln:
=MAX(INDEX(QuellDaten, , 4))
=MIN(INDEX(QuellDaten, , 4))
Berechnen Sie die Gesamtmasse des Planeten (Masse ist die 2. Spalte in der Tabelle):
=SUMME(INDEX(QuellDaten, , 2))
Aus praktischer Sicht ist die Funktion INDEX in der obigen Formel überflüssig. Sie können einfach schreiben =AVERAGE(Bereich)
oder =SUMME(Bereich)
und erhalten die gleichen Ergebnisse.
Bei der Arbeit mit echten Daten kann sich diese Funktion als Teil komplexerer Formeln, die Sie für die Datenanalyse verwenden, als hilfreich erweisen.
3. die Verwendung von INDEX mit anderen Funktionen (SUM, AVERAGE, MAX, MIN)
Aus den vorangegangenen Beispielen könnten Sie den Eindruck gewinnen, dass eine INDEX-Formel Werte zurückgibt, aber in Wirklichkeit gibt sie eine Referenz Dieses Beispiel zeigt die wahre Natur der Excel-Funktion INDEX.
Da das Ergebnis einer INDEX-Formel eine Referenz ist, können wir sie in anderen Funktionen verwenden, um eine Dynamikbereich Klingt verwirrend? Die folgende Formel wird alles klar machen.
Angenommen, Sie haben eine Formel =DURCHSCHNITT(A1:A10)
die einen Durchschnitt der Werte in den Zellen A1:A10 zurückgibt. Anstatt den Bereich direkt in die Formel zu schreiben, können Sie entweder A1 oder A10 oder beide durch INDEX-Funktionen ersetzen, etwa so:
=DURCHSCHNITT(A1 : INDEX(A1:A20,10))
Beide obigen Formeln liefern dasselbe Ergebnis, da die Funktion INDEX ebenfalls einen Verweis auf die Zelle A10 zurückgibt (row_num ist auf 10 gesetzt, col_num entfällt). Der Unterschied besteht darin, dass der Bereich der Formel AVERAGE / INDEX dynamisch ist, und sobald Sie das Argument row_num in INDEX ändern, ändert sich der von der Funktion AVERAGE verarbeitete Bereich, und die Formel liefert ein anderes Ergebnis.
Der Weg, den die INDEX-Formel einschlägt, erscheint auf den ersten Blick zu kompliziert, hat aber durchaus praktische Anwendungen, wie die folgenden Beispiele zeigen.
Beispiel 1: Berechnung des Durchschnitts der obersten N Positionen der Liste
Angenommen, Sie wollen den durchschnittlichen Durchmesser der N größten Planeten in unserem System wissen. Also sortieren Sie die Tabelle nach Durchmesser Spalte von der größten zur kleinsten und verwenden Sie die folgende Formel Durchschnitt/Index:
=AVERAGE(C5 : INDEX(QuellDaten[Durchmesser], B1))
Beispiel 2: Summe der Posten zwischen den beiden angegebenen Posten
Wenn Sie in Ihrer Formel die Ober- und Untergrenze festlegen möchten, brauchen Sie nur zwei INDEX-Funktionen zu verwenden, um das erste und das letzte Element zurückzugeben, das Sie wünschen.
Die folgende Formel gibt zum Beispiel die Summe der Werte in den Feldern Durchmesser Spalte zwischen den beiden in den Zellen B1 und B2 angegebenen Positionen:
=SUMME(INDEX(QuellDaten[Durchmesser],B1) : INDEX(QuellDaten[Durchmesser], B2))
4. die INDEX-Formel zur Erstellung dynamischer Bereiche und Dropdown-Listen
Wie so oft, wenn man anfängt, Daten in einem Arbeitsblatt zu organisieren, weiß man nicht, wie viele Einträge man letztendlich haben wird. Das ist nicht der Fall bei unserer Planetentabelle, die vollständig zu sein scheint, aber wer weiß...
Wie auch immer, wenn sich die Anzahl der Einträge in einer bestimmten Spalte ändert, z. B. von A1 bis A n Wenn Sie einen dynamischen benannten Bereich erstellen möchten, der alle Zellen mit Daten umfasst, möchten Sie, dass sich der Bereich automatisch anpasst, wenn Sie neue Elemente hinzufügen oder einige der vorhandenen Elemente löschen. Wenn Sie beispielsweise derzeit 10 Elemente haben, lautet Ihr benannter Bereich A1:A10. Wenn Sie einen neuen Eintrag hinzufügen, wird der benannte Bereich automatisch auf A1:A11 erweitert, und wenn Sie Ihre Meinung ändern und die neu hinzugefügten Daten löschen,wird der Bereich automatisch auf A1:A10 zurückgesetzt.
Der Hauptvorteil dieses Ansatzes ist, dass Sie nicht ständig alle Formeln in Ihrer Arbeitsmappe aktualisieren müssen, um sicherzustellen, dass sie sich auf die richtigen Bereiche beziehen.
Eine Möglichkeit, einen dynamischen Bereich zu definieren, ist die Verwendung der Excel-Funktion OFFSET:
=OFFSET(Blatt_Name!$A$1, 0, 0, COUNTA(Blatt_Name!$A:$A), 1)
Eine andere mögliche Lösung ist die Verwendung von Excel INDEX zusammen mit COUNTA:
=Blatt_Name!$A$1:INDEX(Blatt_Name!$A:$A, COUNTA(Blatt_Name!$A:$A))
In beiden Formeln ist A1 die Zelle, die das erste Element der Liste enthält, und der dynamische Bereich, der von beiden Formeln erzeugt wird, ist identisch.
Der Unterschied liegt in den Ansätzen. Während die Funktion OFFSET sich vom Ausgangspunkt um eine bestimmte Anzahl von Zeilen und/oder Spalten bewegt, findet INDEX eine Zelle am Schnittpunkt einer bestimmten Zeile und Spalte. Die Funktion COUNTA, die in beiden Formeln verwendet wird, ermittelt die Anzahl der nicht leeren Zellen in der gewünschten Spalte.
In diesem Beispiel gibt es 9 nicht leere Zellen in Spalte A, so dass COUNTA 9 zurückgibt. Folglich gibt INDEX $A$9 zurück, was die letzte verwendete Zelle in Spalte A ist (normalerweise gibt INDEX einen Wert zurück, aber in dieser Formel zwingt der Referenzoperator (:) dazu, eine Referenz zurückzugeben). Und da $A$1 unser Ausgangspunkt ist, ist das Endergebnis der Formel der Bereich $A$1:$A$9.
Der folgende Screenshot zeigt, wie Sie eine solche Indexformel verwenden können, um eine dynamische Dropdown-Liste zu erstellen.
Tipp: Der einfachste Weg, eine dynamisch aktualisierte Dropdown-Liste zu erstellen, ist die Erstellung einer benannten Liste auf der Grundlage einer Tabelle. In diesem Fall benötigen Sie keine komplexen Formeln, da Excel-Tabellen per se dynamische Bereiche sind.
Sie können auch die Funktion INDEX verwenden, um abhängige Dropdown-Listen zu erstellen. Das folgende Tutorial erklärt die Schritte: Erstellen einer kaskadierenden Dropdown-Liste in Excel.
5. leistungsstarke Vlookups mit INDEX / MATCH
Wenn Sie schon einmal versucht haben, die VLOOKUP-Funktion von Excel zu verwenden, kennen Sie ihre zahlreichen Einschränkungen, z. B. die Unfähigkeit, Werte aus Spalten links von der Suchspalte zu ziehen, oder die Beschränkung auf 255 Zeichen für einen Suchwert.
Die INDEX / MATCH-Verbindung ist VLOOKUP in vielerlei Hinsicht überlegen:
- Keine Probleme mit linken Vlookups.
- Keine Begrenzung der Größe der Nachschlagewerte.
- Es ist keine Sortierung erforderlich (bei VLOOKUP mit annähernder Übereinstimmung muss die Nachschlage-Spalte in aufsteigender Reihenfolge sortiert werden).
- Sie können Spalten in einer Tabelle einfügen und entfernen, ohne alle zugehörigen Formeln zu aktualisieren.
- Und nicht zuletzt verlangsamt INDEX / MATCH Ihr Excel nicht, wie es mehrere Vlookups tun.
Sie verwenden INDEX / MATCH auf folgende Weise:
=INDEX ( Spalte, um einen Wert von , (MATCH ( Nachschlagewert , Spalte, gegen die gesucht werden soll , 0))Wenn wir zum Beispiel unsere Quelltabelle so umdrehen, dass Planet Name zur rechten Spalte wird, holt die INDEX / MATCH-Formel trotzdem problemlos einen passenden Wert aus der linken Spalte.
Weitere Tipps und Formelbeispiele finden Sie in der Excel-Anleitung INDEX / MATCH.
6. die Excel INDEX-Formel, um 1 Bereich aus einer Liste von Bereichen zu erhalten
Eine weitere intelligente und leistungsstarke Verwendung der INDEX-Funktion in Excel ist die Möglichkeit, einen Bereich aus einer Liste von Bereichen zu ermitteln.
Angenommen, Sie haben mehrere Listen mit einer unterschiedlichen Anzahl von Elementen in jeder. Ob Sie es glauben oder nicht, Sie können den Durchschnitt oder die Summe der Werte in jedem ausgewählten Bereich mit einer einzigen Formel berechnen.
Zunächst erstellen Sie für jede Liste einen benannten Bereich, z. B. PlanetenD und MondeD in diesem Beispiel:
Ich hoffe, das obige Bild erklärt den Grund für die Namen der Bereiche : ) Übrigens, die Monde Die Tabelle ist bei weitem nicht vollständig, es gibt 176 bekannte natürliche Monde in unserem Sonnensystem, allein Jupiter hat derzeit 63, Tendenz steigend. Für dieses Beispiel habe ich zufällig 11, na ja... vielleicht nicht ganz zufällig, Monde mit den schönsten Namen ausgewählt : )
Bitte entschuldigen Sie die Abschweifung, zurück zu unserer INDEX-Formel. Angenommen, dass PlanetenD ist Ihr Bereich 1 und MondeD Bereich 2 ist und in Zelle B1 die Bereichsnummer steht, können Sie die folgende Indexformel verwenden, um den Durchschnitt der Werte in dem ausgewählten benannten Bereich zu berechnen:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))
Bitte beachten Sie, dass wir jetzt die Referenzform der INDEX-Funktion verwenden und die Zahl im letzten Argument (area_num) der Formel mitteilt, welcher Bereich ausgewählt werden soll.
Im folgenden Screenshot ist area_num (Zelle B1) auf 2 gesetzt, so dass die Formel den durchschnittlichen Durchmesser von Monde weil der Bereich MondeD steht an zweiter Stelle des Referenzarguments.
Wenn Sie mit mehreren Listen arbeiten und sich nicht die Mühe machen wollen, sich die zugehörigen Nummern zu merken, können Sie eine verschachtelte IF-Funktion verwenden, um dies für Sie zu erledigen:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))
In der WENN-Funktion verwenden Sie einige einfache und leicht zu merkende Listennamen, die Ihre Benutzer in Zelle B1 anstelle von Zahlen eingeben sollen. Bitte beachten Sie, dass der Text in B1 genau der gleiche sein muss (Groß- und Kleinschreibung wird nicht berücksichtigt) wie in den WENN-Parametern, da Ihre Index-Formel sonst den #VALUE-Fehler auslöst, damit die Formel korrekt funktioniert.
Um die Formel noch benutzerfreundlicher zu gestalten, können Sie mit der Datenvalidierung eine Dropdown-Liste mit vordefinierten Namen erstellen, um Rechtschreib- und Druckfehler zu vermeiden:
Um Ihre INDEX-Formel perfekt zu machen, können Sie sie in die Funktion IFERROR einschließen, die den Benutzer auffordert, ein Element aus der Dropdown-Liste auszuwählen, wenn noch keine Auswahl getroffen wurde:
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Bitte wählen Sie die Liste!")
So verwenden Sie INDEX-Formeln in Excel. Ich hoffe, diese Beispiele haben Ihnen gezeigt, wie Sie das Potenzial der INDEX-Funktion in Ihren Arbeitsblättern nutzen können. Vielen Dank fürs Lesen!