Blog

Peter Rühm

Peter Rühm

Neulich in unserem Forum gefragt: SVERWEIS mit mehreren Ergebnissen

In unserem Forum kam eine interessante Frage an: kann ich beim SVERWEIS auch feststellen, ob es weitete Treffer gibt und diese auch darstellen, evtl. als Liste?

Das bringt mich dazu, einmal ein paar Worte zum SVERWEIS zu schreiben.

Klare Antwort auf obige Frage: nein das kann der SVERWEIS nicht, der bringt immer den ersten Treffer und fertig. Oder das allseits beliebte #NV, wenn eben kein Treffer vorliegt.

Aber wir wären nicht PRT, wenn das schon genug wäre, daher hier einige  Lösungsvorschläge – ohne und mit Visual Basic (VBA)

Lösung mit Funktionen

Beim SVERWEIS sollte der letzte Parameter, der sog. Bereich_Verweis immer versorgt werden, mit FALSCH, wenn Sie nur genaue Treffer wünschen, mit WAHR, wenn – nur, falls kein exakter Treffer vorliegt – der größte Wert, der kleiner als das Suchkriterium ist, den Treffer bestimmen soll. Tippfaule – nein: effiziente (!) –  Menschen nutzen anstelle von WAHR auch die Ziffer 0, das spart Zeit, Platz und Tippfehler.

=SVERWEIS(Suchkriterium;Suchbereich;2;0)

Nun gut, wir wissen nun, ob wir einen Treffer haben oder nicht.

Übrigens: falls Sie ohne Treffer bei geforderter genauer Übereinstimmung die Fehlermeldung #NV unterdrücken wollen, nutzen Sie bitte nicht mehr die früher üblichen Monsterkonstruktionen mit

= WENN(ISTFEHLER(SVERWEIS(Suchkriterium;Suchbereich;2;0));0;SVERWEIS(Suchkriterium;Suchbereich;2;0))

sondern das wesentlich kürzere und performantere WENNFEHLER (neu seit EXCEL 2007 oder bei uns im VBA-Seminar bekannt seit 1995):

=WENNFEHLER(SVERWEIS(Suchkriterium;Suchbereich;2;0);0)

Anzeigen mehrerer Treffer

Nun wollen wir rausfinden, ob es weitere Treffer gibt. Mithilfe von ZÄHLENWENN oder dem neuen ZÄHLENWENNS ist das ganz leicht:

=WENN(ZÄHLENWENN(Suchspalte;Suchkriterium)>1;“Achtung, mehrere Lösungen möglich!“;“ „)

Garniert mit Bedingter Formatierung wird hier ein nettes Banner draus.

Hier ein Beispiel dazu: sverweis-loesung

Performance beim SVERWEIS

Beim massiven Einsatz in mehreren Spalten ist er die Performance Bremse schlechthin, da er immer wieder den selben Bereich durchsucht! Hier empfehle ich INDEX und VERGLEICH oder gleich Datenbank Techniken via MS-Query. PowerQuery & Co.

Lösung mit VBA

Im nächsten Beitrag „Pimp my SVERWEIS“ sehen Sie meine Lösung mit dem selbst programmierten myBetterSVERWEIS in VBA – Visual Basic für Applications…

Wenn Ihnen dieser Beitrag gefallen hat, dann teilen  Sie ihn gerne. Falls Sie Anmerkungen haben, schreiben Sie bitte einen Kommentar, oder senden Sie mir eine Mail an info@prt.de.

Beitrag teilen:

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on xing
Share on email
Share on print

Up to date bleiben

Melden Sie sich für unseren Newsletter an!