Excel Sverweis (0 anstatt #NV?

3 Antworten

Also,

um spezifisch auf den Fragetitel einzugehen, verweise ich einmal auf Suboptimierer und darauf dass du einen #NV Wert bekommst wenn es einen Fehler gibt.

So, wenn du diesen Fehler durch eine 0 ersetzen willst, musst du erst mal abfragen ob du einen #NV als Rückgabewert bekommst.

Mit einem SVERWEIS() würde das so aussehen:

=WENN(ISTNV(SVERWEIS("Test";A1;B20;2;0));0;SVERWEIS("Test";A1;B20;2;0)

Liebe Grüße,

iMPerFekTioN

Woher ich das weiß:Berufserfahrung – Eigenständiges lernen während und nach meiner Ausbildung

In deinem Befehl taucht ja gar kein SVERWEIS auf. o.O

Um das ISTNV müsste noch ein NICHT, denn du willst ja nur den INDEX ausführen, wenn kein Fehler auftritt.

Da so der INDEX-Aufruf doppelt ist, kannst du besser mit WENNFEHLER arbeiten. Da brauchst du den INDEX-Befehl nur einmal als ersten Parameter übergeben.

In neueren Excelversionen (>= 2013) gibt es sogar WENNNV, welches spezifischer den Fehler abfängt (und kürzer ist ;)).

iMPerFekTioN  12.04.2017, 11:22

Schlag mich wenn ich falsch liege, aber die Formel von ihm:

=WENN(ISTNV(INDEX("Produktion_Sifi_aktM!";VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6))=FALSCH;INDEX(Produktion_Sifi_aktM!A:F;VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6);0)

...sollte die nicht eher so heißen das er eine 0 bekommt?: (Das fett geschriebene ist das abgeänderte ;) )

=WENN(ISTNV(INDEX("Produktion_Sifi_aktM!";VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6))=FALSCH;0;INDEX(Produktion_Sifi_aktM!A:F;VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6))
2
Suboptimierer  12.04.2017, 11:26
@iMPerFekTioN

Ich gebe zu, dass die Formel sehr unübersichtlich ist. Z. B. habe ich das =FALSCH am Ende überlesen. Man kommt schnell mit den Klammern durcheinander.

Damit ich mich nicht noch weiter verhaspele, empfehle ich, direkt WENNFEHLER zu verwenden anstelle von WENN(NICHT(ISTNV(..., bzw. WENN(ISTNV(...)=FALSCH;...

4
iMPerFekTioN  12.04.2017, 11:36
@Suboptimierer

Hast ja auch recht, aber ich weiß (aus eigener Erfahrung) das man gerne (auch wenn es umständlich ist) seine "eigene Funktion/Formel" weiter verwendet :)

Ich mein ja nur das seine Formel an dieser stelle hier mit der Überprüfung fertig ist.:

=WENN(ISTNV(INDEX("Produktion_Sifi_aktM!";VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6))=FALSCH;INDEX(Produktion_Sifi_aktM!A:F;VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6);0)

Wenn dieser erst Teil also die Überprüfung ein ISTNV ist, dann soll der Kursive Teil ausgeführt werden, ansonsten soll eine 0 kommen, also auch wenn es KEIN #NV gibt.

Das ist doch einfach nur genau falsch rum geschrieben - oder nicht?

Deswegen die 0 mit dem 2. Teil tauschen.+Überprüfung und SONST Teil sind ja eh die gleiche Formel :p

Oder täusche ich mich?

Ich denke sogar, das er in der Überprüfung einen Fehler hat.

Das es anstatt diesem hier:

...INDEX("Produktion_Sifi_aktM!";VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6)...

so heißen müssten:

....INDEX(Produktion_Sifi_aktM!A:F;VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6)...

Weil in der Überprüfung keine Matrix angegeben ist.

2
Suboptimierer  12.04.2017, 12:22
@iMPerFekTioN

Wenn ich mich nicht täusche, bist du in dieselbe Falle getappt.

Das ist doch einfach nur genau falsch rum geschrieben - oder nicht?

Das =FALSCH macht es wieder richtig herum. :)

Wenn schon nicht NICHT(ISTNV(..)) verwendet wird, also auf =FALSCH geprüft wird, dann sollte der Übersichtlichkeit zugut FALSCH= vorangestellt werden.
___________

Mit deiner unteren Korrektur hast du natürlich recht. Der erste Parameter muss ein Bereich sein, kein Text.

3
PWolff  12.04.2017, 14:33

In der ISTNV- bzw. WENNNV-Abfrage würde ich die INDEX-Funktion komplett weglassen: VERGLEICH reicht hier vollkommen aus und macht die Formel außerdem etwas weniger unübersichtlich.

(Die VERGLEICH-Funktion nehme ich für diesen Zweck auch, wenn ich weiter hinten eine der VERWEIS-Funktionen nehme (SVERWEIS, WVERWEIS, VERWEIS))

2
TobiHartmann 
Fragesteller
 12.04.2017, 14:53
@PWolff


Wow, danke für die vielen antworten in der kurzen Zeit. Leider klappt es noch nicht bei mir. Ich muss aber auch sagen das ich etwas die Übersicht verloren hab bei eurer Diskussion, ich kenne mich leider nicht so gut aus in Excel. Also: Ich habe nun von oben diesen Excel Befehl kopiert und bei mir eingefügt:

=WENN(ISTNV(INDEX("Produktion_Sifi_aktM!";VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6))=FALSCH;0;INDEX(Produktion_Sifi_aktM!A:F;VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6))

 

Wenn ich das bei mir einfüge bekomme ich überall eine 0 auch bei den Feldern bei denen davor ein Wert stand. Ein Excel Befehl den ich nur kopieren und Einfügen kann der dann auch einfach funktioniert wäre top haha ....

0
Suboptimierer  12.04.2017, 14:58
@TobiHartmann

Ich stricke dir einmal etwas ungetestet zusammen. Probier das einmal aus:

=WENNFEHLER(INDEX(Produktion_Sifi_aktM!A:F;VERGLEICH(A14;Produktion_Sifi_aktM!A:A;0);6);0)
1

Hallo mapis,

Die Ergebnisse "0" oder "#NV" weißen auf zwei unterschiedliche Fehler beim SVerweis hin: 

Das Ergebnis ist "0", wenn der Wert nach dem du in der MATRIX suchst, nicht vorhanden ist (leere Zelle).

Das Ergebnis ist "#NV", wenn das SUCHKRITERIUM aus deiner Tabelle A in der MATRIX (Tabelle B) nicht existiert.

Mehr Details zum SVerweis findet man auf der Seite von einem Anbieter für Excelseminare unter http://excel-kurs.bayern/sverweis-excel-beispiel/.

LG