Ich habe ein Arbeitsblatt mit Rohdaten, die Excel nicht als Tabellen identifiziert (d. h. es werden einfach Werte in benachbarte Zellen eingetragen), und in einem anderen Teil meines Arbeitsblatts Formeln, die in diesen Daten nachschlagen, wie
VLOOKUP(D$1, Config!$C$4:$E$8,2,FALSE)
Alles läuft perfekt, bis ich mich dazu entscheide, meine Rohdaten als Tabelle zu deklarieren (Strg+T), um einige zusätzliche Funktionen wie automatische Formatierung und automatische Tabellenerweiterung zu erhalten.
Sobald die Tabelle deklariert ist, finden alle meine Formeln #N/A in dieser Tabelle, unabhängig davon, ob ich auf die Suchzone als Zellreferenz ( Config!$C$4:$E$8
) oder über den neuen Tabellennamen (geändert über den Namensmanager) verweise.
Ein Anhaltspunkt(Ich weiß nicht, was es wert ist) ist, dass der Nachschlageschlüssel ( D$1
in meiner Formel) und die Datenschlüssel (ganz linke Spalte von Config!$C$4:$E$8
) numerisch sind (Werte wie ). Excel scheint innerhalb einer Tabelle eine Textsuche zu verwenden und (in der Tabelle) nicht mit (von ) 2015
abzugleichen . Dies ist nur ein Hinweis, ich kann mich hier irren.2015
"2015"
D$1
Was kann ich tun, um Tabellen zu verwenden (die automatische Erweiterung ist wirklich nützlich), ohne meine Formeln zu beschädigen?
BEARBEITEN :Die Dinge brechen, wenn der Nachschlageschlüssel ( D$1
) Teil einer Tabelle wird: 2015 wird jetzt von Formeln als „2015“ angesehen.
Antwort1
D$1 + 0
Wie sicarius92 in seinem Kommentar anmerkt, funktioniert bei mir der Umgang mit dem geänderten Datentyp durch „Casting“ .
Allerdings handelt es sich dabei nur um eine Problemumgehung, die nicht erklärt, warum sich der Datentyp auf magische Weise ändert, wenn Daten in Tabellen eingefügt werden.
Antwort2
In Excel 2010 (ich weiß nicht genau, wie es 2007 funktioniert hat) wird beim Umwandeln eines Bereichs in eine Tabelle der Inhalt der Kopfzeilen unabhängig vom Inhalt in Text umgewandelt. Wenn Sie wirklich Zahlen in den Kopfzeilen haben möchten, müssen Sie die Zellenformatierung als „Zahl“ oder „Allgemein“ (oder was auch immer Sie benötigen) markieren und die vorherigen Daten erneut einfügen, da Excel anscheinend auch die Prüfung auf inkompatible Datentypen deaktiviert (und die automatische Lösung, den kleinen grünen Pfeil und sein Menü).
Antwort3
Leute, seid gnadenlos ...
Dieses Problem lässt sich ganz einfach IFERROR()
lösen. Wenn Sie wissen, dass ein Nachschlagewert in der Nachschlagetabelle numerisch sein KÖNNTE, in der Nachschlagewertzelle jedoch NICHT numerisch sein kann, führen Sie einfach Folgendes aus:
=IFERROR(VLOOKUP(D$1,Config!$C$4:$E$8,2,FALSE), VLOOKUP(VALUE(D$1),Config!$C$4:$E$8,2,FALSE))
Das Obige dient nur zur Verallgemeinerung der Formel. Wenn Sie es nicht woanders hin kopieren möchten, dann WISSEN Sie, dass der Nachschlagewert eine Zahl ist, die als Text behandelt wird, und Sie benötigen nur die „Fehler“-Hälfte der Formel. Wenn Sie es nicht genau wissen oder es ÜBERHAUPT nicht wissen, es aber gegen diese Art von Problem absichern möchten, verwenden Sie das Ganze.
Es funktioniert auch andersherum. Angenommen, Sie haben einen numerischen Nachschlagewert (Excel denkt, er sei numerisch {wobei Excel hier denkt, der Nachschlagewert sei Text}). Verwenden Sie einfach TEXT()
anstelle von, VALUE()
um das Problem zu lösen:
=IFERROR(VLOOKUP(D$1,Config!$C$4:$E$8,2,FALSE), VLOOKUP(TEXT(D$1,"@"),Config!$C$4:$E$8,2,FALSE))
(Und wenn keines davon das Problem löst, haben Sie den Albtraum, an der einen oder anderen Stelle nach wertlosen Zeichen zu suchen ... Da Header normalerweise keine Datenquellen außerhalb Ihrer sicheren, kontrollierten Welt sind, versuchen Sie es zuerst mit dem Nachschlagebereichsmaterial. Es sei denn, Sie haben Header dorthin importiert, wo sie sich befinden (Sie wissen schon, Sie haben das gesamte Material importiert, aus dem der Nachschlagewert stammt). Oder Sie haben beide Datensätze importiert.)