🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel DGET-Funktion — genau einen Datensatz extrahieren und laut scheitern, wenn es keinen gibt

|

Excel DGET-Funktion — genau einen Datensatz extrahieren und laut scheitern, wenn es keinen gibt

KurzfassungDGET(database, field, criteria) gibt den einzelnen Wert aus einer Spalte zurück, wo Ihr Kriterienbereich genau eine Zeile trifft. Sein Markenzeichen ist, dass es absichtlich einen Fehler wirft: #NUM! wenn mehr als eine Zeile passt, #VALUE! wenn keine passt. Jeder begegnet diesen zuerst als Bugs; dabei sind sie das eigentliche Feature. Wo VLOOKUP stillschweigend den ersten von mehreren Duplikaten zurückgibt, verweigert DGET und sagt Ihnen, dass Ihr „eindeutiger“ Schlüssel gar nicht eindeutig ist. Und weil die Bedingungen in einer Kriterientabelle stehen, erledigt DGET Nachschläge über mehrere Spalten (Region und Product) ganz ohne Hilfsspalte. Greifen Sie dazu, wenn es genau einen Treffer geben sollte und Sie wollen, dass Excel das beweist. Funktioniert in jeder Excel-Version.

=DGET(A1:E200, "Amount", H1:H2)      ' der Amount der einen Zeile, die zu H1:H2 passt
=DGET(A1:E200, "Rep", H1:I2)         ' zwei Bedingungen (H1:I2) = ein UND-Nachschlag, keine Hilfsspalte
=IFERROR(DGET(A1:E200, "Amount", H1:H2), "nicht eindeutig / nicht gefunden")   ' produktionssicher

VLOOKUP und XLOOKUP sind auf Nachsicht gebaut: Geben Sie ihnen einen Schlüssel, liefern sie das erste Passende zurück und schauen nie weiter. Das ist meist genau, was Sie wollen — und gelegentlich eine Katastrophe, denn ein doppelter Schlüssel gibt ohne Warnung eine plausible falsche Antwort zurück. DGET hat das gegenteilige Temperament. Es setzt voraus, dass der Treffer eindeutig ist, und hält in dem Moment mit einem Fehler an, in dem das nicht stimmt. Sobald Sie das als seinen Zweck statt als seinen Makel begreifen, wird es zum schärfsten Nachschlag zur Datenprüfung in Excel.

Hinweis: In einer deutschen Excel-Oberfläche heißt die Funktion DBAUSZUG (DGET). Verwandt: VLOOKUP = SVERWEIS, XLOOKUP = XVERWEIS, INDEX = INDEX, MATCH = VERGLEICH, DCOUNT = DBANZAHL, IFERROR = WENNFEHLER, FILTER = FILTER. Die Formeln unten nutzen die englischen Namen — sie zeigen dasselbe Verhalten.

Was Sie lernen

  • Das mentale Modell: ein Nachschlag, der Eindeutigkeit erzwingt, statt zu raten
  • Die drei Argumente und wie DGET die Idee des Kriterienbereichs wiederverwendet
  • #NUM! gegen #VALUE! — die beiden Fehler, die Ihnen tatsächlich etwas sagen
  • Nachschläge mit mehreren Bedingungen (Region und Product) ohne Verkettungstrick
  • Wann DGET XLOOKUP schlägt — und die Fälle, in denen es das falsche Werkzeug ist
  • Es sicher umschließen, ohne zu verbergen, was die Fehler bedeuten

Das mentale Modell: der Nachschlag, der sich weigert zu raten

Stellen Sie sich DGET als Nachschlag mit einem Vertrag vor: „Es gibt genau eine Zeile, die passt. Gib mir ein Feld daraus.“ Hält der Vertrag, bekommen Sie den Wert. Hält er nicht — null Treffer oder zwei —, übertüncht DGET das nicht. Diese eine Verhaltensentscheidung trennt es von jedem anderen Nachschlag.

' Kriterienblock H1:H2 — eine Bedingung:
'   H1: OrderID
'   H2: 10248
=DGET(A1:E200, "Amount", H1:H2)      ' -> der Amount für Auftrag 10248, WENN diese ID eindeutig ist

VLOOKUP würde bereitwillig den ersten Auftrag 10248 zurückgeben, selbst wenn die ID dreimal vorkommt. DGET gibt stattdessen #NUM! zurück — und das ist, wenn OrderID ein Primärschlüssel sein soll, genau der Alarm, den Sie wollen. Es macht aus „schlag das nach“ ein „schlag das nach und bestätige, dass mein Schlüssel wirklich eindeutig ist“, und das gratis.

Die drei Argumente (dieselbe Form wie die ganze Familie)

=DGET(database, field, criteria) — identisch zu DSUM und DCOUNT:

  • database — die Tabelle einschließlich ihrer Kopfzeile (A1:E200). Über die Überschriften werden Feld und Kriterien den Spalten zugeordnet; lassen Sie sie weg, bricht DGET.
  • field — die Spalte, aus der ein Wert zurückgegeben wird, benannt per Überschrift in Anführungszeichen ("Amount"), per Zelle mit der Überschrift oder per Spaltennummer. Die Überschrift in Anführungszeichen ist die lesbare, bearbeitungssichere Wahl.
  • criteria — der Bereich mit Ihrem Block aus Überschrift und Bedingungen, genau wie bei den anderen D-Funktionen. Dieselben Regeln: gleiche Zeile = UND, gestapelte Zeilen = ODER, Überschriften müssen Zeichen für Zeichen zu den Daten passen.

Alles, was Sie über den Aufbau eines Kriterienbereichs wissen, überträgt sich unmittelbar. Das Einzige, was sich ändert, ist das Versprechen: DGET erwartet, dass dieser Block eine Zeile auswählt.

#NUM! und #VALUE! sind der ganze Sinn

Die meisten Funktionen haben einen Fehlerzustand. DGET hat zwei, und sie bedeuten Gegensätzliches — sie lesen zu lernen ist 90 % des guten Umgangs mit der Funktion.

=DGET(A1:E200, "Amount", H1:H2)
'   -> der Wert         : genau eine Zeile passte (der Idealfall)
'   -> #NUM!            : MEHR ALS EINE Zeile passte — Ihr Schlüssel ist nicht eindeutig
'   -> #VALUE!          : KEINE Zeile passte — nichts erfüllt die Kriterien
  • #NUM! bedeutet „zu viele“. Zwei oder mehr Zeilen erfüllen Ihre Kriterien. War das Feld als eindeutiger Schlüssel gedacht, haben Sie gerade ein Duplikat gefunden, von dem Sie nichts wussten — eine wirklich nützliche Entdeckung. Falls Sie mehrere Treffer erwartet haben, ist DGET schlicht die falsche Funktion (Sie wollen eine Summe, einen Filter oder einen Erste-Treffer-Nachschlag).
  • #VALUE! bedeutet „keine“. Nichts passte — ein vertippter Schlüssel, eine Kriterienüberschrift, die nicht zu den Daten passt, oder ein Wert, der nicht vorhanden ist.

Weil die beiden Fehler diagnostisch sind, widerstehen Sie der Versuchung, beide mit einem pauschalen IFERROR("") zu schlucken. „Doppelter Schlüssel“ und „nicht gefunden“ sind verschiedene Probleme und verdienen oft eine unterschiedliche Behandlung.

Nachschläge mit mehreren Bedingungen, ohne Hilfsspalte

Hier übertrifft DGET VLOOKUP klammheimlich im Design. Weil die Bedingungen in einer Kriterientabelle stehen, ist das Hinzufügen einer zweiten Bedingung einfach das Hinzufügen einer Spalte — Sie erhalten einen UND-Nachschlag ohne verketteten Hilfsschlüssel.

' Den Rep für die Zeile West + Widgets finden:
'   H1: Region    I1: Product
'   H2: West      I2: Widgets
=DGET(A1:E200, "Rep", H1:I2)         ' trifft auf BEIDE Spalten gleichzeitig

Der klassische VLOOKUP-Notbehelf für einen zweispaltigen Schlüssel ist, eine Hilfsspalte aus Region&Product zu bauen und "West"&"Widgets" nachzuschlagen — brüchig und unübersichtlich. DGET braucht davon nichts: Setzen Sie zwei Überschriften in die oberste Zeile, zwei Bedingungen darunter, und der Abgleich ist UND über die Zeile. Und Sie behalten die Eindeutigkeitsgarantie — ist West + Widgets nicht eindeutig, erfahren Sie es.

Wann DGET XLOOKUP schlägt — und wann nicht

DGET ist ein Spezialist, und es außerhalb seines Fachs einzusetzen verursacht den Großteil der Frustration, von der Leute berichten.

Greifen Sie zu DGET, wenn:

  • der Treffer eindeutig sein sollte und Sie das erzwungen haben wollen — Abgleich über eine Rechnungsnummer, das Ziehen eines einzelnen Konfigurationswerts, das Prüfen eines Schlüssels.
  • Sie einen UND-Nachschlag über mehrere Spalten brauchen und lieber keinen Hilfsschlüssel bauen wollen.
  • die Kriterien sichtbar und auf dem Blatt bearbeitbar sein sollen.

Nutzen Sie stattdessen XLOOKUP oder INDEX/MATCH, wenn:

  • Duplikate erwartet werden und Sie den ersten (oder letzten) Treffer wollen, keinen Fehler. DGET wirft hier nur #NUM!.
  • Sie den Nachschlag Hunderte Zeilen hinunterkopieren — XLOOKUP ist schlanker als ein Kriterienblock pro Zeile.
  • Sie eine ungefähre / nächstgelegene Übereinstimmung brauchen. DGET kann nur exakte Treffer.

Der Test in einem Satz: Ist mehr als ein Treffer ein Fehler oder eine Erwartung? Ist es ein Fehler, ist DGET der einzige Nachschlag, der ihn auch so behandelt.

Für den Produktiveinsatz umschließen (ohne blind zu werden)

Formeln im Live-Betrieb sollten Endnutzern kein rohes #NUM!/#VALUE! zeigen, aber ein pauschales Abfangen wirft die Diagnose weg. Unterscheiden Sie die beiden, wenn es darauf ankommt:

' Einfach, wenn beide Probleme für den Nutzer dasselbe bedeuten:
=IFERROR(DGET(A1:E200, "Amount", H1:H2), "Kein eindeutiger Treffer")

' Besser, wenn Duplikat und Fehlen unterschiedlich behandelt werden müssen:
=IF(DCOUNT(A1:E200, "Amount", H1:H2) = 1,
    DGET(A1:E200, "Amount", H1:H2),
    IF(DCOUNT(A1:E200, "Amount", H1:H2) = 0, "Nicht gefunden", "Doppelter Schlüssel!"))

Das zweite Muster nutzt DCOUNT auf denselben Kriterien, um zu melden, welcher Fehler eintrat — und verwandelt so DGETs Strenge in eine klare Meldung statt eines Fehlercodes. Das ist DGET in Bestform: kein pingeliger Nachschlag, sondern ein Nachschlag, der schlechte Daten unmöglich zu übersehen macht.

Wie ExcelMaster hilft

DGET belohnt präzise Kriterienblöcke und bestraft schludrige — und genau das ist der fummelige Teil. Sagen Sie ExcelMaster „hol den Amount für den einen West-+-Widgets-Auftrag“, und es baut die zweispaltige Kriterientabelle, gleicht die Überschriften an Ihre Daten an und schreibt das =DGET(...). Reichen Sie ihm ein DGET, das #NUM! wirft, erklärt es, welche Zeilen kollidieren — und bringt den doppelten Schlüssel ans Licht, von dem Sie nichts wussten, statt den Fehler bloß zu verstecken.

Häufige Fragen

Warum gibt DGET #NUM! zurück?

Weil mehr als eine Zeile zu Ihren Kriterien passt. DGET gibt genau einen Wert zurück und behandelt mehrere Treffer als Fehler — oft einen hilfreichen, denn es bedeutet, dass ein Schlüssel, den Sie für eindeutig hielten, es nicht ist. Wenn Sie tatsächlich mehrere Treffer erwarten, nutzen Sie stattdessen SUMIFS, FILTER oder einen Erste-Treffer-Nachschlag wie XLOOKUP.

Warum gibt DGET #VALUE! zurück?

Weil keine Zeile passt. Die üblichen Ursachen sind ein vertipptes Kriterium, eine Kriterienüberschrift, die nicht exakt zu einer Datenbanküberschrift passt, oder ein Wert, der schlicht nicht in der Tabelle steht. Prüfen Sie zuerst die Schreibweise der Überschrift — sie ist über alle Datenbankfunktionen hinweg der häufigste Übeltäter.

Wie unterscheidet sich DGET von VLOOKUP?

VLOOKUP gibt den ersten Treffer zurück und ignoriert Duplikate stillschweigend. DGET besteht auf einem einzigen Treffer und wirft einen Fehler (#NUM!), wenn es mehr als einen gibt. DGET gleicht über seinen Kriterienbereich auch auf mehreren Spalten ab, wo VLOOKUP einen verketteten Hilfsschlüssel braucht. Nutzen Sie VLOOKUP/XLOOKUP für nachsichtige Erste-Treffer-Nachschläge; nutzen Sie DGET, wenn Eindeutigkeit garantiert sein muss.

Kann DGET auf mehr als einer Spalte abgleichen?

Ja — das ist eine Kernstärke. Setzen Sie jede Überschrift in die oberste Zeile des Kriterienbereichs und jede Bedingung direkt darunter, in dieselbe Zeile für UND-Logik: Region=West und Product=Widgets in einer Zeile trifft nur Zeilen, die beides erfüllen, ganz ohne Hilfsspalte.

Funktioniert DGET in Excel 2016 und älter?

Ja. DGET ist wie die übrigen Datenbankfunktionen seit Jahrzehnten in Excel und verhält sich in Excel 2016, 2019, 2021 und 365 identisch. Es gibt keinen Haken bei der Versionsverfügbarkeit, um den Sie sich sorgen müssten.

Getestet in

Getestet in: Excel 365 (Windows 11) — zuletzt geprüft am 2026-07-20.

Verwandte Anleitungen: Excel DSUM & DCOUNT · Excel Datenbankfunktionen · Excel VLOOKUP · Excel INDEX & MATCH · Excel XLOOKUP