@ > Home > Inhalt > SVERWEIS mit Obergrenze Excel4+, SpreadCE, Ooo, Lotus

Aufgabe:

=SVERWEIS(A1;C1:D4;2) gibt für A1: 400 bei folgendem C1:D4 den Wert 2 zurück, da bei Verweisen und Vergleichen [von Listenwert ... bis unter höheren Wert] geprüft wird.

    0     1
  400     2
  800     3
 3675     4

Es soll nun aber [von über niedrigerem Wert ... bis Listenwert] gelten, also der Wert 1 wiedergegeben werden. Praktische Anwendungsfälle sind Sozialbeiträge, wo Höchstbeträge als Grenzen dienen (Minijob), oder steuerliche Freibeträge (Sparerfreibetrag) oder Freigrenzen (Veräußerungsgewinne).

    0,01  1
  400,01  2
  800,01  3
 3675,01  4

Dies ginge wie vorstehend, wenn 1 Cent als Überschreitung gilt. Einfacher sogar noch mit den Alternativen

a) =SVERWEIS(A1-0,01;C1:D4;2) 
b) =INDEX(D1:D4;VERGLEICH(A1;{-0,01;400;800;3675}+0,01))
c) {=INDEX(D1:D4;VERGLEICH(A1;C1:C4+0,01))} <-Matrixformel; die 0 müsste zu -0,01 geändert werden.

bei unveränderter Tabelle, unter der gleichen Voraussetzung (b)+c) am 2007.03.06 eingefügt). Wie aber funktioniert es stetig korrekt?

Lösung: (Bernd Plumhoff, hier übrigens auch seine VBA-Lösung dazu)

1. Multipliziere eine -1 beinhaltende Zelle mit C1:C4 (Inhalte einfügen Werte Multiplizieren) und sortiere C1:D4 aufsteigend.

2. Kopiere C1:C3 (ohne D!) nach C2 und ersetze C1 durch -1E+9. Wenn nötig: Passe den Höchstwert an oder füge einen an. Das Resultat:

-1E+9     4
-3675     3
 -800     2
 -400     1

3. Ändere den SVERWEIS auf -A1 ab: =SVERWEIS(-A1;C1:D4;2)

Siehe auch:

Excelformeln.de bietet Lösungen zu ähnlichen Problemen an, insbesondere eine Verweissuche von unten oder rechts kommend (statt von oben oder links), sowie Verweise, die nach oben oder links gehen (statt nach unten oder rechts).