Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1196to1200
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SVERWEIS liefert falsche Werte zurück

SVERWEIS liefert falsche Werte zurück
dietmar
Guten Tag,
ich habe ein Problem mit einer Wenn Funktion, die einen SVerweis enthält, der - in bestimmten Fällen - nicht die richtigen Werte zurückliefert.
Das Problem:
Ich arbeite mit einer Arbeitsmappe, die zwei Tabellenblätter enthält: Arbeitsblatt 1 und Arbeitsblatt 2. Arbeitsblatt 1 erhält die Ergebnisse in den Zellen aus Arbeitsblatt 2. Arbeitsblatt 2 ist aufgeteilt in einen Bereich "Werte" und in einen Bereich "Mengen". In Arbeitsblatt 1 sollen - je nach SVerweis - entweder Werte oder Mengen aus Arbeitsblatt 2 in die Zellen eingetragen werden.
Für die Werte funktioniert die Formel ohne Problem:
=WENN(ISTFEHLER(SVERWEIS($A33;Query;VERGLEICH("Gesamtergebnis";Überschrift2;0);0));"";SVERWEIS($A33; Query;VERGLEICH("Gesamtergebnis";Überschrift2;0);0)) .
Für die Mengen funktioniert die Formel nicht, sondern liefert den falschen Wert zuück:
Beispiel für Zelle C85 in Arbeitsblatt 1:
=WENN(ISTFEHLER(SVERWEIS($A97;Query;VERGLEICH("Gesamtergebnis";Überschrift2;1);0));"";SVERWEIS($A97; Query;VERGLEICH("Gesamtergebnis";Überschrift2;1);0)) .
Geliefert wird der Wert 0,00. Das ist falsch. Richtig wäre: 10 JHR.
Wenn ich in der Formal prüfe, welcher Wert zurückgegeben wird, dann zeigt mir das Ergebnis auch in der Tat die falsche Spalte in Arbeitsblatt 2: Spalte 79. Richtig wäre Spalte 88.
Ich habe alles Mögliche probiert, um zu erreichen, dass die Formel den richtigen Wert für die mengenbezogenen Zellen zurückliefert (das sind die Zellen "Jahre"), komme aber nicht weiter.
Vielleicht hat jemand im Forum ein solches Problem schon mal gelöst oder hat eine Idee?
Über Hinweise würde ich mich freuen.
Als Anhang zu diesem Beitrag lade ich die betroffene Excel Arbeitsdatei im zip. Format hoch.
https://www.herber.de/bbs/user/73418.zip.
AW: SVERWEIS liefert falsche Werte zurück
06.02.2011 22:36:33
Josef

Hallo Dietmar,
wenn du in "Überschrift2" nicht zweimal die selbe Überschrift verwenden würdest, dann genügt eine einfache INDEX-Formel.
Z. B. statt zweimal "Gesamtergebnis" das zweite Mal "Gesamtergebnis2".
Arbeitsblatt 1

 ABCD
76    
77m.) Am lfd. Jahresende sichern Commodity Cashflow Hedges geplante Grundgeschäfte bis zu XXX Jahren.   
78    
79  Jahre 
804194183000Maximaler Zeitraum geplante Commodity-CFH  
81    
82n.) Am laufenden Jahresende sichern Interest Rate Cashflow Hedges  bestehende Grundgeschäfte bis zu XXX Jahren.   
83    
84  Jahre 
854194184000Maximaler Zeitraum existierende Zins-CFH10,00 
86    
87    

Formeln der Tabelle
ZelleFormel
C80=WENN(ISTFEHLER(INDEX(Query;VERGLEICH(A80;'Arbeitsblatt 2'!A1:A100;0); VERGLEICH("Gesamtergebnis2";Überschrift2;0))); "";INDEX(Query;VERGLEICH(A80;'Arbeitsblatt 2'!A1:A100;0); VERGLEICH("Gesamtergebnis2";Überschrift2;0)))
Namen in Formeln
ZelleNameBezieht sich auf
C80Query='Arbeitsblatt 2'!$1:$65536
C80Überschrift2='Arbeitsblatt 2'!$8:$8
Namen verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Gruß Sepp

Anzeige
AW: SVERWEIS liefert falsche Werte zurück
07.02.2011 10:09:08
dietmar
Hallo Schachspieler,
Hallo Joseph,
Vielen Dank für eure Hinweise!
Das Problem besteht darin: Arbeitsblatt 2 ist eine SAP Query, deren Spalten dynamisch erzeugt werden, d.h. je nach Abrufparameter der Query von 16 - XX Spalten gehen können.
Die oben angegebene Formel =WENN(ISTFEHLER(SVERWEIS($A97;Query;VERGLEICH("Gesamtergebnis";Überschrift2;1);0));"";SVERWEIS($A97; Query;VERGLEICH("Gesamtergebnis";Überschrift2;1);0)) funktioniert problemlos bis 79 Spalten. Das könnt ihr überprüfen wenn ihr im Excel Anhang die Spalten bis auf 79 oder weniger löscht. Dann liefert die Formel die richtigen Ergebnisse zurück. Das Problem mit der Zahl der Spalten belibt - soweit ich das prüfen konnte - auch dann wenn man die mengenbezogene Ergebnisspalte z.B. mit Gesamtergebnis2 bezeichnet und im SVerweis danach sucht.
Kann es sein, dass Excel intern an der Zahl der Spalten scheitert? Ist so etwas vorstellbar?
Ich habe das Problem jetzt vorläufig so gelöst:
=WENN(ISTFEHLER(SVERWEIS($A85;Query;(VERGLEICH("Gesamtergebnis";Überschrift2;0)-1)*2;0));""; SVERWEIS($A85;Query;(VERGLEICH("Gesamtergebnis";Überschrift2;0)-1)*2;0)) . Mit dieser Anpassung werden die richtigen Werte in Zelle C85 zurückgeliefert.
Da ich aber sehr häufig mit großen Query Aufrissen zu tun habe, wäre es interessant zu wissen, ob Excel hier tatsächlich "Begrenzungen" auch in Excel 2007 hat.
Noch einmal danke ich euch für eure Hinweise und Unterstützung!
Dietmar
Anzeige
AW: SVERWEIS liefert falsche Werte zurück
07.02.2011 19:23:41
Schachspieler
Hallo Dietmar,
wenn du das 2. Gesamtergebnis in Gesamtergebnis2 änderst funktioniert diese Formel:
=WENN(ISTFEHLER(SVERWEIS$A85;Query;VERGLEICH"Gesamtergebnis2";Überschrift2;0);0));"";
SVERWEIS$A85;Query;VERGLEICH("Gesamtergebnis2";Überschrift2;0);0))
Dies zeigt auch, dass es bei der Spaltenanzahl im Prinzip keine Limitationen bei Excel gibt. Es ist einfach ein Problem des mehrfach vorkommenden Suchbegriffs.
Mit dieser Formel bekommst du übigens die letzte beschrieben Zelle bestimmen und dies in den SVerweis einbauen: (=Gesamtergebnis2) =VERGLEICH("";Überschrift2;-1)
Viel Erfolg!
Andreas
Anzeige
AW: SVERWEIS liefert falsche Werte zurück
07.02.2011 21:52:12
dietmar
Hallo Andreas,
Vielen Dank für deine Hinweise.
Wie bereits von mir beschrieben liegt dem Arbeitsblatt 2 im Excel File eine SAP Query zugrunde. Die Spaltenanzahl der Query ist dynamisch und hängt ab von den Positionen und Bewegungsarten. Wenn ich das 2. "Gesamtergebnis" (= Menge) in "Gesamtergebnis2" umbenennen will muss ich daher die SAP Query ändern. Kann ich zwar machen, unsere Logik ist aber, dass wir in den Queries alle Daten aus der Datenbank zusammenführen und dann in den Arbeitsblättern (hier Arbeitsblatt 1) aufbereiten.
Wie beschrieben habe ich bereits eine Lösung gefunden ohne die Query umbauen zu müssen:
=WENN(ISTFEHLER(SVERWEIS($A85;Query;(VERGLEICH("Gesamtergebnis";Überschrift2;0)-1)*2;0));""; SVERWEIS($A85;Query;(VERGLEICH("Gesamtergebnis";Überschrift2;0)-1)*2;0)) .
Das funktioniert deshalb, weil die Query immer exakt dieselbe Anzahl von Spalten für "Betrag" und "Menge" aufreißt.
Das alles erklärt aber nicht, warum die erste Formel =WENN(ISTFEHLER(SVERWEIS($A97;Query;VERGLEICH("Gesamtergebnis";Überschrift2;1);0));"";SVERWEIS($A97; Query;VERGLEICH("Gesamtergebnis";Überschrift2;1);0)) mit der wir gearbeitet haben - wie du schreibst - "ein Problem des mehrfach vorkommenden Suchbegriffs" beinhalten soll. Die ursprüngliche Formel besagt ja, dass nicht das erste "Gesamtergebnis" verwendet werden soll (in Spalte 45) , sondern das zweite in Spalte 88. Warum tritt dieses Problem nur auf bei einer Zahl von Spalten größer 79 und nicht wenn es 75 Spalten sind oder 60 oder 58?
Danke!
Dietmar
Anzeige
AW: SVERWEIS liefert falsche Werte zurück
08.02.2011 00:11:42
Schachspieler
Hallo Dietmar,
Die ursprüngliche Formel besagt ja, dass nicht das erste "Gesamtergebnis" verwendet werden soll (in Spalte 45) , sondern das zweite in Spalte 88.
Woraus erkjennst du, dass es sich auf das 2. Gesamtergebnis beziehen soll und nicht das erste verwendet wird? Sehe ich aus der Formel nicht. Der letzte Parameter bei Vergleich bedeutet etwas Anderes.
Ich zitiere aus der Online-Hilfe
Ist Vergleichstyp gleich 1, gibt VERGLEICH den größten Wert zurück, der kleiner gleich Suchkriterium ist. Die Elemente der Suchmatrix müssen in aufsteigender Reihenfolge angeordnet sein: ...-2, -1, 0, 1, 2, ..., A-Z, FALSCH, WAHR
Dies ist in deiner Liste NICHT der Fall!! Nach Spalte 33 (896) kommt Spalte 44 (#) und erst danach Spalte 34 (B11). Auch das "Gesamtergebnis" passt nicht in die Sortierreihenfolge. Somit ist das Excel-Ergebnis auch nicht wirklich verlässlich. Ich kann nicht wirklich nachvollziehen, wieso gerade 79 bei dir rauskommt, aber ist letztlich auch egal, denn falsch ist falsch. Folgendes kleine Bsp. verdeutlicht die Probleme vielleicht:
Tabelle1

 ABCDEFGHI
1SucheABCDEF C
2Vergleich244567 3
31DDDDDD A
42AAAAAA B
53CCCCCC C
64BBBBBB D
75DDDDDD D
86EEEEEE E
97DDDDDD F
10         
11        sortierte Liste

Formeln der Tabelle
ZelleFormel
B2=VERGLEICH(B1;B3:B9;1)
C2=VERGLEICH(C1;C3:C9;1)
D2=VERGLEICH(D1;D3:D9;1)
E2=VERGLEICH(E1;E3:E9;1)
F2=VERGLEICH(F1;F3:F9;1)
G2=VERGLEICH(G1;G3:G9;1)
I2=VERGLEICH(I1;I3:I9;1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Zu deiner Lösung
Wenn du in deiner Lösung * 2 nimmst, erhältst du nur gerade Vergleichsergebnisse. Besser ist wohl +43 zu addieren. Die 43 ergibt sich wie folgt =Vergleich(Gesamtergebnis ...) (=45) -2 (da die ersten 2 Spalten vom Wiederholungsbereich ausgeschlossen sind. Ist dies generell so oder muss man in Zeile7 nach HW suchen und -1 rechnen? D.h. der Wiederholungsbereich ist 43 Spalten breit.
Wenn du noch Fragen hast, melde ich mich morgen Abend wieder. Ich hoffe, es ist nun etwas klarer geworden.
Andreas
Anzeige
AW: SVERWEIS liefert falsche Werte zurück
08.02.2011 09:43:26
dietmar
Hallo Andreas,
danke für die Anworten!
Ich kommentiere das wie folgt:
"Wenn du in deiner Lösung * 2 nimmst, erhältst du nur gerade Vergleichsergebnisse. Besser ist wohl +43 zu addieren."
Das Gesamtergebnis1 (Werte) wird in der Query dynamisch ermittelt. Je nachdem, in welcher Spalte dieses Ergebnis steht, wird das Gesamtergebnis 2 durch Substraktion von 1 und Multiplikation von *2 ermittelt und ist daher ebenfalls dynamisch. Steht also Gesamtergebnis1 in Spalte 20, steht Gesamtergebnis 2 in Spalte 38, steht Gesamtergebnis1 in Spalte 21 steht Gesamtergebnis2 in Spalte 40.
Das passt schon. Einfach statisch +43 zu addieren genügt hier n.m.A. nicht.
Probleme macht mir das Verständnis des Vergleichs in der Formel.
Aufgabenstellung: Es gibt eine große Tabelle mit zwei Spalten "Gesamtergebnis", wobei die Spaltenposition dieser beiden Spalten Gesamtergebnis dynamisch variabel ist.
Aber fest steht: Die erste Spalte Gesamtergebnis enthält immer die "Werte", die zweite immer die "Mengen".
Im Deckblatt wird eine SVerweis Formel gesucht, die - je nachdem ob ein Wertfeld oder ein Mengenfeld in eine bestimmte Zelle des Deckblatts übertragen werden soll - aus den zwei Gesamtergebnisspalten der Query die richtige findet.
Für die Wertfelder verwenden wir dabei folgende Formel, die bisher nie zu falschen Ergebnissen geführt hat: =WENN(ISTFEHLER(SVERWEIS($A56;Query;VERGLEICH("Gesamtergebnis";Überschrift2;0);0));"";SVERWEIS($A56;Query;VERGLEICH("Gesamtergebnis";Überschrift2;0);0)) Hier ist ja bereits eine Vergleichsformel beinhaltet, die - nach meinem vielleicht falschen Verständnis - besagt: Nimm von den beiden Gesamtergebnissen das "kleinere", also das, was zuerst in der Query angelistet wird, das Gesamtergebnis am weitesten links, das sind die Werte.
Also dachte ich, dass das zweite der Gesamtergebnisse, die Menge, gefunden wird, wenn man die Formel wie folgt umbaut:=WENN(ISTFEHLER(SVERWEIS($A97;Query;VERGLEICH("Gesamtergebnis";Überschrift2;1);0));"";SVERWEIS($A97; Query;VERGLEICH("Gesamtergebnis";Überschrift2;1);0)). Der Vergleich also so umgestellt wird, dass das "größere" der Gesamtergebnisse, also das zweite der Gesamtergebnisse, das weiter rechts in der Query gesucht wird. Das das so nicht funktioniert ist mir erst bei einer größeren Anzahl von Spalten in der Query aufgefallen.
Ich bin jetzt unsicher ob es überhaupt eine Möglichkeit gibt in der hier beschriebenen Ausgangssituation mit Hilfe des SVerweises sicher das richtige "Gesamtergebnis" zu finden.
Vielleicht hat jemand von euch eine ähnliche Konstellation schon mal gehabt und eleganter gelöst als bisher hier beschrieben?
Viele Grüße
Dietmar
Anzeige
AW: SVERWEIS liefert falsche Werte zurück
08.02.2011 19:11:59
Schachspieler
Hallo Dietmar,
du hast mich falsch verstanden; du sollst nicht statisch +43 addieren, sondern wenn du die Menge zu '100 suchst findest du die Position für den SVerweis mit folgender allgemeingültigen Formel. Diese Formel setzt nur voraus, dass du immer 2 Leerspalten (A, B) hast.
=VERGLEICH("100";Überschrift2;0)+VERGLEICH("Gesamtergebnis";Überschrift2;0)-2
Und die Formel ergibt 3 + 45-2 = 3 + 43 = 46
Klappt auch für deine anderen Beispiele. Dies würdest du mit Multiplikation mit *2 nicht rauskriegen.
Zu deiner anderen Vermutung: VERGLEICH("100";Überschrift2;0) findet den ersten exakt übereinstimmenden Wert von links.
VERGLEICH("100";Überschrift2;1) sucht in sortierten Listen => in deinem Fall nicht anwendbar.
Um den letzten Wert, d.h. den ersten von rechts zu finden: (vgl. http://www.excelformeln.de/formeln.html?welcher=27):
=MAX((Überschrift2="Gesamtergebnis")*SPALTE(1:1))
Als Matrixformel mit Shift+Strg+Return abschließen
Oder siehe bei http://www.excelformeln.de/formeln.html?welcher=29
Wie man die letzte beschriebene Zelle findet habe ich gestern beschrieben.
Problematisch wird es wenn Gesamtergebnis mehr als 2x vorkommt. Am einfachsten wohl (ungetestet):
=VERGLEICH("100";Überschrift2;0)+VERGLEICH("Gesamtergebnis";Überschrift2;0)*2-2
Du hast jetzt mehrer Mögichkeiten - ich denke eine davon passt.
Viel Erfolg
Andreas
Anzeige
AW: SVERWEIS liefert falsche Werte zurück
09.02.2011 09:05:41
dietmar
Hallo Andreas,
Vielen Dank für diese Hinweise und die Links!
Inbesondere =MAX((Überschrift2="Gesamtergebnis")*SPALTE(1:1))
Als Matrixformel mit Shift+Strg+Return abschließen ist super, hab ich gestern ausprobiert, hilft echt weiter!
Mein Problem ist gelöst!
Viele Grüße!
Dietmar
AW: SVERWEIS liefert falsche Werte zurück
06.02.2011 22:52:04
Schachspieler
Hallo Dietmar,
als Tipp vorweg: in Arbeitsblatt2 kann man die Spaltennr in Zeile1 und Zeile6 mit der Formel =Spalte() angeben.
Zu deinem Problem:
Das Wort Gesamtergebnis, das du in Vergleich suchst, kommt in Spalte AS und CJ vor. Wenn du in CJ Gesamtergebnis in Gesamtergebnis1 änderst und danach vergleichst, ist es besser. Zudem musst du bei Vergleich den letzten Parameter jeweils auf 0 ändern, damit er nach exakter Übereinstimmung sucht. Denn mit dem Parameter 1 sucht er nach dem größten Wert der kleiner als das Suchkriterium ist Und "F11" ist kleiner als das erste gefundene "G"esamtergebnis.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige