Tag Archives: SVERWEIS

Dumm sein ist nicht leicht. Ich habe viel Konkurrenz.

Hallo René,

 

ich bin auf deine Webseite gestoßen und hoffe, dass es ok ist, eine E-Mail zu schreiben.

ich habe folgendes Problem: Mir steht eine Exceltabelle mit einer Liste von verschiedenen Kostenarten in Spalte A zur Verfügung, z.B. „MasterCard, Adobe“, „Klipfolio 30€“ und „Juni Klipfolio VisaCard“. Diese möchte ich in die Kategorien „Adobe“ und „Klipfolio“ einteilen (nur als Beispiel, in Wirklichkeit sind es natürlich wesentlich mehr Kategorien) und suche deshalb nach genau diesen Stichwörtern im Text. Wird eines dieser Stichwörter gefunden, soll es entsprechend in Spalte B geschrieben werden, so dass ich das ganze später bequem in einer Pivottabelle zusammenfassen kann.

 

                                                  B

Kostenart                                      Stichwort

MasterCard, Adobe                        Adobe

Klipfolio 30€                                  Klipfolio

Juni Klipfolio VisaCard                    Klipfolio

Insgesamt handelt es sich um ca. 1.000 Datensätze und rund 50 verschiedene Stichwörter. Das „Problem“ ist zur Zeit über eine lange verschachtelete Wenn-Funktion gelöst. Ich dachte aber, es gäbe über VBA vllt eine schnellere und unkompliziertere Lösung. Zur Zeit bin ich so weit, dass ich nach einem bestimmten Stichwort (egal wo im Text es steht) suchen lassen kann.

Sub a()

Dim Rng As Range
Dim wks As Worksheet

Set wks = Worksheets(„data“)

Set Rng = wks.Range(wks.Cells(1, 1), wks.Cells(1000, 1)).Find(what:=“Adobe“, lookat:=xlPart, LookIn:=xlValues, MatchCase:=True)

If Not Rng Is Nothing Then Rng.Select

End Sub

Ich komme allerdings jetzt nicht mehr weiter bzw. bin mir auch nicht sicher, ob das überhaupt ein guter Ansatz ist.

Kannst du mir weiterhelfen?

Vielen Dank im Voraus,

#####

Hallo J.,

ich würde das mit einem SVERWEIS lösen. Oder mit der Funktion INDEX und VERGLEICH. Kannst du?

Liebe Grüße

Rene

#####

Hallo René,
vielen Dank für deine super schnelle Antwort.
Ja, beide Funktionen sind mir bekannt. Da ich ja aber ca. 50 verschiedene Suchkriterien habe, würde ja auch da wieder eine extrem lange und verschachtelte Formel in der Spalte B stehen- oder übersehe ich etwas? Aus diesem Grund dachte ich an eine VBA Abfrage. Diese wäre vllt ebenfalls lang und verschachtelt- würde ja aber quasi „im Hintergrund“ laufen- andere Nutzer müssten dann ja nur noch monatlich in der Kostenübersicht das Makro starten. Siehst du bzgl VBA auch eine Möglichkeit?
Danke und LG J.
#####
Wer nervt mehr? Excel oder die Menschen, die Excel benutzen?

Selbst gemachte Geschenke sind beängstigend, denn sie zeigen, dass du zu viel Freizeit hast (douglas Coupland)

Servus Rene,

ich hoffe es geht dir soweit gut und du bist mit deiner 4ten Million nun endlich fertig

Sorry, dass ich dich wieder mal belästige, aber der SVERWEIS mag mich nicht mehr. Ich hatte jetzt damit jahrelang keinerlei Probleme mehr und nun sträubt sich das Ding wie ne keusche Jungfrau.

Ich hab dir mal die Datei angehängt. Wäre super wenn du da mal drüber schauen könntest.

Ich muss hier 2 Tabellen nach der PIN Nummer vergleichen.

Kriterium: PIN Nummer (Spalte F)

Matrix: Spalte K-M

Gesuchter Wert: Nachname (Spalte M)

Hallo J.,

du solltest richtig markieren. Dann klappt es auch.

Und: verwende besser den Parameter FALSCH – dann siehst du auch die PIN-Nummern, die nicht in der Liste vorhanden sind.

Liebe Grüße

Rene

Moing Rene,

zunächst einmal Danke für deine schnelle Hilfe.

Und was jetzt kommt ist die reine Wahrheit, ich hab Zeugen dafür. Bitte glaub mir, der SVERWEIS macht mir normalerweise keine Problem mehr, aber was hier abgelaufen ist, ist nicht erklärbar:

Ich hatte genau die gleiche Formel wie du auch, aber bei mir kamen völlig blödsinnige Werte, meistens ein #NV. Ich hab dann manuell eine Tabelle entworfen, nur um evtl. Zelltypenfehler zu vermeiden, aber auch da hat der SVERWEIS nicht funktioniert. Erst dann habe ich dir geschrieben. Als deine Antwort da war und in deiner Formel genau das gleiche stand wie in meiner, war ich völlig von den Socken . Darauf nahm ich meine Original Tabelle und hab einen SVERWEIS nochmal genauso eingegeben wie davor und …. JETZT LÄUFT DAS DING WIE GESCHMIERT.

Hast du sowas schon mal erlebt?

DA fällst doch vom Glauben ab oder hast du da eine Erklärung?

Prokrastination – ein Problem, dass ich gleich morgen angehe.

Es dauert zirka eine Minute, bis die 1,5 MByte große Datei geöffnet ist. Das Filtern dauert ebenso lange.

In einer Excelmappe befindet sich eine Verknüpfung auf eine externe Datei auf die mittels SVERWEIS zugegriffen wird:

Inquire ermittelt 65.000 Formeln in dieser Datei:

Die Aktivierung der Mulithreadingberechnung (In den Optionen / Erweitert) nutzt nichts:

Sämtliche Prozessoren sind ausgelastet:

Lösungsvorschläge bei „zu vielen Formeln“, die Excel verlangsamen:

* Die verknüpften Daten in die Arbeitsmappe hineinkopieren

* Die automatische Berechnung deaktivieren

* Formeln durch Werte ersetzen

* Statt mit einer Verknüpfung auf die Datei mit PowerQuery (Daten abrufen und transformieren) auf die Daten zugreifen.

* Die Datei als Excel-Binärarbeitsmappe (XLSB) speichern.

 

 

Ich bin sehr wohl spontan … wenn man mir früh genug Bescheid sagt

Eigentlich unterscheidet Excel zwischen Text und Zahl. Eigentlich. Sicherlich kennen Sie folgendes Phänomen:

Eine Spalte ist als Text formatiert:

In einer anderen Spalte stehen ZAHLEN. Diese werden mit der Funktion SVERWEIS als #NV (nicht vorhanden) quittiert:

Das habe ich schon mehrmals beschrieben – beispielsweise in: „Sverweis funktioniert nicht“
Ebenso werden sie bei der Überprüfung auf Gleichheit

{=ODER(K2=$G$2:$G$22)}

(als Matrixformel) korrekt als unterschiedliche Werte erkannt:

Verwendet man statt dem Gleichheitsoperator „=“ jedoch die Funktion IDENTISCH werden die Texte und Zahlen als gleich(wertig) eingestuft:

{=ODER(IDENTISCH(K2;$G$2:$G$22))}

Ebenso übergeht ZÄHLENWENN diesen Unterschied:

Auch hier gilt mal wieder – schade, dass Excel an so vielen unterschiedlich ist, beziehungsweise einfach nicht konsequent. Kein Verlass auf gar nichts!

SVERWEIS rechnet nicht

Seit einer Weile arbeite ich mit dem SVERWEIS. Ich habe ihn schon recht gut verstanden. Aber manchmal rechnet er nicht richtig. Warum?

SVERWEIS rechnet nicht richtig.

SVERWEIS rechnet nicht richtig.

Dazu muss man sich die Formel genau ansehen:

=SVERWEIS(K2;$A$1:$A$32;3;FALSCH)

Sie suchen den Wert, der in der Zelle K2 steht in der Spalte A – genauer in den Zellen A1 bis A32. Soweit so gut. Sie möchten den Wert der dritten Spalte (3), also den Last Name wissen. Sie müssen den Bereich ändern: Es ist richtig – Sie suchen zwar in A1:A32, aber in der Spalte A steht nicht der Wert den Sie haben möchten. Sie müssen in der Matrix (in der Informationstabelle, in der die Daten gesucht werden), auch den Bereich einschließen, in dem sich die Daten befinden, also Spalte C. Sie können dabei gerne übers Ziel schießen, beispielsweise:

=SVERWEIS(K2;$A$1:$H$32;3;FALSCH)

Dann funktioniert es.

SVERWEIS klappt nur manchmal

In den ersten Zeilen rechnet der SVERWEIS noch richtig, aber dann gibt es Fehler.

SVERWEIS rechnet manchmal richtig.

SVERWEIS rechnet manchmal richtig.

Eigentlich müssten Sie den Fehler selbst finden können, wenn Sie die Formel anschauen. Der Bereich (hier: A1:B14) wurde nicht fixiert. Das bedeutet: er „wandert“ beim Herunterziehen mit nach unten. Was passiert, können Sie leicht überprüfen, wen Sie auf eine Zelle doppelklicken, die sich weiter unten befindet.

Der Bereich wurde nicht fixiert.

Der Bereich wurde nicht fixiert.

Wandeln Sie also A1:B14 in $A$1:$B$14 um (oder verwenden einen Namen für diesen Bereich)

VLOOKUP und SVERWEIS

Die Erklärung des letzten Parameters „Range_Lookup“, der vielen Anwendern Schwierigkeiten bereitet, lautet im englischsprachigen Excel:

„[…]is a logical value: to find the closest match in the first column (sorted in ascending order) = TRUE or omitted; find an exact match = FALSE“

Im Deutschen dagegen:

„[…] gibt an, ob eine genaue Übereinstimmung gefunden werden soll: WAHR = aus der aufsteigend sortierten Reihenfolge der Werte wird der Wert zurückgegeben, der am dichtesten am gesuchten Wert liegt; Falsch = es wird eine genaue Übereinstimmung angenommen“

Dabei stellen sich mir folgende Fragen:

1. Warum wird das nicht korrekt erklärt? Weder im Englischen noch im Deutschen? „the closest match“ ist genauso falsch wie „der am dichtesten am gesuchten Wert liegt“.

2. Warum schneidet Excel seit der Version 2007 den letzten Teil der Erklärung ab. Hat das noch keiner gemerkt?

3. Warum wird „to find the closest match“ übersetzt mit „gibt an, ob eine genaue Übereinstimmung gefunden werden soll“ – „closest“ ist nicht „genau“ sondern „ungefähr“. Somit ist die deutsche Übersetzung zur englischen spiegelverkehrt. Und das, seit ich Excel kenne (seit Excel 4.0)

Auf http://office.microsoft.com/de-de/excel-help/sverweis-HP005209335.aspx lese ich:

„[…]

Wenn dieser Parameter WAHR ist oder weggelassen wird, wird eine ungefähre Entsprechung zurückgegeben. Wenn keine genaue Entsprechung gefunden wird, wird der nächstgrößere Wert zurückgegeben, der kleiner als Suchkriterium ist.

Die Werte in der ersten Spalte von Matrix müssen aufsteigend sortiert sein. Andernfalls gibt SVERWEIS möglicherweise nicht den korrekten Wert zurück. Sie können die Werte aufsteigend sortieren, indem Sie im Menü Daten auf Sortieren klicken und Aufsteigend auswählen. Unter Standardsortierreihenfolgen finden Sie weitere Informationen.

[…]“

Auf https://support.office.com/de-at/article/SVERWEIS-0bbc8083-26fe-4963-8ab8-93a18ad188a1 lese ich:

„Wenn Bereich_Verweis entweder WAHR oder nicht belegt ist, wird eine genaue oder ungefähre Entsprechung zurückgegeben. Wird keine genaue Entsprechung gefunden, wird der nächstgrößere Wert zurückgegeben, der kleiner als Suchkriterium ist.“

Warum so umständlich? Warum nicht beispielsweise so:

„Ist dieser Wert WAHR und es wird kein dem Suchkriterium entsprechender Wert gefunden, wird der nächstkleinere Wert (das heißt der Wert aus der darüberliegenden Zeile) ausgegeben. Ist der Wert FALSCH und es wird kein dem Suchkriterium entsprechender Wert gefunden, wird eine Fehlermeldung erzeugt.“
VLOOKUP auf englisch

VLOOKUP auf englisch

SVERWEIS auf deutsch

SVERWEIS auf deutsch