Inhaltsverzeichnis
In diesem Tutorial lernen Sie, wie Sie einen dynamischen benannten Bereich in Excel erstellen und ihn in Formeln verwenden können, um neue Daten automatisch in Berechnungen einzubeziehen.
In der letzten Woche haben wir uns verschiedene Möglichkeiten angesehen, einen statischen benannten Bereich in Excel zu definieren. Ein statischer Name bezieht sich immer auf dieselben Zellen, was bedeutet, dass Sie den Bereichsbezug manuell aktualisieren müssen, wenn Sie neue Daten hinzufügen oder vorhandene Daten entfernen.
Wenn Sie mit einem sich ständig ändernden Datensatz arbeiten, möchten Sie Ihren benannten Bereich vielleicht dynamisch gestalten, so dass er sich automatisch erweitert, um neu hinzugefügte Einträge aufzunehmen, oder sich zusammenzieht, um entfernte Daten auszuschließen. Im weiteren Verlauf dieses Tutorials finden Sie eine detaillierte Schritt-für-Schritt-Anleitung, wie Sie dies tun können.
So erstellen Sie einen dynamischen benannten Bereich in Excel
Lassen Sie uns zunächst einen dynamischen benannten Bereich erstellen, der aus einer einzigen Spalte und einer variablen Anzahl von Zeilen besteht. Führen Sie dazu die folgenden Schritte aus:
- Auf der Formel auf der Registerkarte Definierte Namen Gruppe, klicken Sie auf Name definieren Oder drücken Sie Strg + F3, um den Excel-Namensmanager zu öffnen, und klicken Sie auf das Symbol Neu... Taste.
- Wie auch immer, die Neuer Name Es öffnet sich ein Dialogfeld, in dem Sie die folgenden Angaben machen können:
- In der Name geben Sie den Namen für Ihren Dynamikbereich ein.
- In der Umfang legen Sie den Geltungsbereich des Namens fest. Arbeitsbuch (Standard) wird in den meisten Fällen empfohlen.
- In der Bezieht sich auf entweder die Formel OFFSET COUNTA oder INDEX COUNTA ein.
- Klicken Sie auf OK. Fertig!
In der folgenden Abbildung definieren wir einen dynamischen Bereich mit dem Namen Artikel die alle Bereiche Zellen mit Daten in Spalte A, mit Ausnahme der Kopfzeile:
OFFSET-Formel zur Definition eines dynamischen benannten Bereichs in Excel
Die allgemeine Formel zur Erstellung eines dynamischen benannten Bereichs in Excel lautet wie folgt:
OFFSET( erste_Zelle , 0, 0, COUNTA( Spalte ), 1)Wo:
- erste_Zelle - das erste Element, das in den genannten Bereich aufgenommen werden soll, zum Beispiel $A$2.
- Spalte - einen absoluten Verweis auf die Spalte wie $A:$A.
Im Kern dieser Formel verwenden Sie die Funktion COUNTA, um die Anzahl der nicht leeren Zellen in der betreffenden Spalte zu ermitteln. Diese Zahl wird direkt in die Spalte Höhe Argument der Funktion OFFSET(reference, rows, cols, [height], [width]), das angibt, wie viele Zeilen zurückgegeben werden sollen.
Darüber hinaus handelt es sich um eine gewöhnliche Offset-Formel, bei der:
- Referenz ist der Ausgangspunkt, von dem aus Sie den Versatz berechnen (erste_Zelle).
- Zeilen und Spalten sind beide 0, da es keine zu versetzenden Spalten oder Zeilen gibt.
- Breite ist gleich 1 Spalte.
Um zum Beispiel einen dynamischen benannten Bereich für Spalte A in Blatt3 zu erstellen, der in Zelle A2 beginnt, verwenden wir diese Formel:
=OFFSET(Sheet3!$A$2, 0, 0, COUNTA(Sheet3!$A:$A), 1)
Hinweis: Wenn Sie einen dynamischen Bereich im aktuellen Arbeitsblatt definieren, müssen Sie den Blattnamen nicht in den Verweisen angeben; Excel tut dies automatisch für Sie. Wenn Sie einen Bereich für ein anderes Blatt erstellen, stellen Sie dem Zell- oder Bereichsverweis den Namen des Blattes gefolgt von einem Ausrufezeichen voran (wie im obigen Formelbeispiel).
INDEX-Formel zur Erstellung eines dynamischen benannten Bereichs in Excel
Eine weitere Möglichkeit, einen dynamischen Bereich in Excel zu erstellen, ist die Verwendung von COUNTA in Kombination mit der Funktion INDEX.
erste_Zelle :INDEX( Spalte ,COUNTA( Spalte ))Diese Formel besteht aus zwei Teilen:
- Auf der linken Seite des Bereichsoperators (:) setzen Sie die fest kodierte Anfangsreferenz wie $A$2.
- Auf der rechten Seite verwenden Sie die Funktion INDEX(array, row_num, [column_num]), um die Endreferenz zu ermitteln. Hier geben Sie die gesamte Spalte A für das Array an und verwenden COUNTA, um die Zeilennummer zu erhalten (d.h. die Anzahl der Zellen ohne Eintrag in Spalte A).
Für unseren Beispieldatensatz (siehe Screenshot oben) sieht die Formel wie folgt aus:
=$A$2:INDEX($A:$A, COUNTA($A:$A))
Da es in Spalte A 5 nicht leere Zellen gibt, einschließlich einer Spaltenüberschrift, gibt COUNTA 5 zurück. Folglich gibt INDEX $A$5 zurück, die die letzte verwendete Zelle in Spalte A ist (normalerweise gibt eine Indexformel einen Wert zurück, aber der Referenzoperator zwingt sie dazu, eine Referenz zurückzugeben). Und da wir $A$2 als Ausgangspunkt festgelegt haben, ist das Endergebnis der Formel der Bereich $A$2:$A$5.
Um den neu erstellten dynamischen Bereich zu testen, können Sie COUNTA die Anzahl der Elemente abrufen lassen:
=COUNTA(Items)
Wenn alles richtig gemacht wird, ändert sich das Ergebnis der Formel, wenn Sie der Liste Elemente hinzufügen oder entfernen:
Hinweis: Die beiden oben beschriebenen Formeln führen zum gleichen Ergebnis, allerdings gibt es einen Leistungsunterschied, den Sie beachten sollten. OFFSET ist eine flüchtige Funktion, die bei jeder Änderung eines Blattes neu berechnet wird. Auf modernen, leistungsstarken Rechnern und bei einer angemessenen Größe der Datensätze sollte dies kein Problem darstellen. Auf Rechnern mit geringer Kapazität und großen Datensätzen kann dies Ihr Excel verlangsamen. In diesem Fall sollten Sieverwenden Sie besser die Formel INDEX, um einen dynamischen benannten Bereich zu erstellen.
Wie man in Excel einen zweidimensionalen dynamischen Bereich erstellt
Um einen zweidimensionalen benannten Bereich zu erstellen, bei dem nicht nur die Anzahl der Zeilen, sondern auch die Anzahl der Spalten dynamisch ist, verwenden Sie die folgende Modifikation der Formel INDEX COUNTA:
erste_Zelle :INDEX($1:$1048576, COUNTA( erste_spalte ), COUNTA( erste_Reihe )))In dieser Formel haben Sie zwei COUNTA-Funktionen, um die letzte nicht leere Zeile und die letzte nicht leere Spalte zu ermitteln ( zeilen_nummer und spalte_num Argumente der Funktion INDEX). In der Array füttern Sie das gesamte Arbeitsblatt (1048576 Zeilen in Excel 2016 - 2007; 65535 Zeilen in Excel 2003 und niedriger).
Und nun definieren wir einen weiteren dynamischen Bereich für unseren Datensatz: den Bereich namens Verkauf die Verkaufszahlen für 3 Monate (Januar bis März) enthält und sich automatisch anpasst, wenn Sie der Tabelle neue Artikel (Zeilen) oder Monate (Spalten) hinzufügen.
Mit den Verkaufsdaten, die in Spalte B, Zeile 2 beginnen, sieht die Formel wie folgt aus:
=$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))
Um sicherzugehen, dass Ihr Dynamikbereich so funktioniert, wie er soll, geben Sie die folgenden Formeln irgendwo auf dem Blatt ein:
=SUMME(Umsatz)
=SUMME(B2:D5)
Wie Sie auf dem Screenshot unten sehen können, liefern beide Formeln dieselbe Summe. Der Unterschied zeigt sich in dem Moment, in dem Sie der Tabelle neue Einträge hinzufügen: Die erste Formel (mit dem dynamisch benannten Bereich) wird automatisch aktualisiert, während die zweite bei jeder Änderung manuell aktualisiert werden muss. Das macht einen großen Unterschied, oder?
Wie man dynamische benannte Bereiche in Excel-Formeln verwendet
In den vorangegangenen Abschnitten dieses Tutorials haben Sie bereits einige einfache Formeln gesehen, die dynamische Bereiche verwenden. Jetzt wollen wir versuchen, etwas Sinnvolleres zu entwickeln, das den tatsächlichen Wert eines dynamischen benannten Bereichs in Excel zeigt.
Für dieses Beispiel nehmen wir die klassische INDEX MATCH-Formel, die Vlookup in Excel durchführt:
INDEX ( return_range , MATCH ( lookup_value , nachschlagen_bereich , 0))...und sehen Sie, wie wir die Formel durch die Verwendung von dynamischen benannten Bereichen noch leistungsfähiger machen können.
Wie in der obigen Abbildung zu sehen ist, versuchen wir, ein Dashboard zu erstellen, bei dem der Benutzer einen Artikelnamen in H1 eingibt und die Gesamtverkäufe für diesen Artikel in H2 abruft. Unsere zu Demonstrationszwecken erstellte Beispieltabelle enthält nur 4 Artikel, aber in Ihren realen Tabellen können Hunderte oder sogar Tausende von Zeilen enthalten sein. Außerdem können täglich neue Artikel hinzugefügt werden, so dass die Verwendung von Referenzen keineOption, weil man dann die Formel immer wieder aktualisieren müsste. Dazu bin ich zu faul :)
Um die automatische Erweiterung der Formel zu erzwingen, werden wir 3 Namen definieren: 2 dynamische Bereiche und 1 statische Zelle mit Namen:
Lookup_range: =$A$2:INDEX($A:$A, COUNTA($A:$A))
Rückgabebereich: =$E$2:INDEX($E:$E, COUNTA($E:$E))
Lookup_value: =$H$1
Hinweis: Excel fügt allen Verweisen den Namen des aktuellen Arbeitsblatts hinzu. Bevor Sie also die Namen erstellen, sollten Sie das Arbeitsblatt mit Ihren Quelldaten öffnen.
Beginnen Sie nun mit der Eingabe der Formel in H1. Geben Sie beim ersten Argument ein paar Zeichen des gewünschten Namens ein, und Excel zeigt alle verfügbaren passenden Namen an. Doppelklicken Sie auf den entsprechenden Namen, und Excel fügt ihn sofort in die Formel ein:
Die fertige Formel sieht wie folgt aus:
=INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))
Und es funktioniert perfekt!
Sobald Sie der Tabelle neue Datensätze hinzufügen, werden diese sofort in Ihre Berechnungen einbezogen, ohne dass Sie auch nur eine einzige Änderung an der Formel vornehmen müssen! Und wenn Sie die Formel einmal in eine andere Excel-Datei übertragen müssen, erstellen Sie einfach dieselben Namen in der Ziel-Arbeitsmappe, kopieren Sie die Formel und fügen Sie sie ein, und sie funktioniert sofort.
Tipp: Dynamische Bereiche machen nicht nur Formeln haltbarer, sondern sind auch sehr nützlich, um dynamische Dropdown-Listen zu erstellen.
So erstellen und verwenden Sie dynamische benannte Bereiche in Excel. Wenn Sie sich die in diesem Tutorial besprochenen Formeln genauer ansehen möchten, können Sie gerne unsere Beispiel-Arbeitsmappe "Dynamische benannte Bereiche" herunterladen. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche in unserem Blog begrüßen zu dürfen!