Warum funktioniert meine EXCEL-Formel nicht korrekt (WENN-Formel)?
Hallo!
Ich erstelle aktuell eine Liste, mit der ich für unsere Mitarbeiter einen Tarif erstelle, der sich aus dem TVÖD-SuE ableitet. In meiner Tabelle habe ich nun für jeden Mitarbeiter den SuE-Wert berechnen lassen und möchte nun 13 Altersstufen mit prozentualer Steigung hinzufügen.
Folgende Altersstufen habe ich in einer weiteren Tabelle aufgelistet:
Nun habe ich für die Berechnung folgende Formel erstellt:
_____________
=WENN([@Alter]<'Tabelle Altersstufe'!$C$10;([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$10);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$11;[@Alter]>='Tabelle Altersstufe'!$B$11);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$11);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$12;[@Alter]>='Tabelle Altersstufe'!$B$12);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$12);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$13;[@Alter]>='Tabelle Altersstufe'!$B$13);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$13);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$14;[@Alter]>='Tabelle Altersstufe'!$B$14);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$14);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$15;[@Alter]>='Tabelle Altersstufe'!$B$15);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$15);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$16;[@Alter]>='Tabelle Altersstufe'!$B$16);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$16);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$17;[@Alter]>='Tabelle Altersstufe'!$B$17);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$17);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$18;[@Alter]>='Tabelle Altersstufe'!$B$18);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$18);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$19;[@Alter]>='Tabelle Altersstufe'!$B$19);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$19);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$20;[@Alter]>='Tabelle Altersstufe'!$B$20);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$20);
WENN(UND([@Alter]<='Tabelle Altersstufe'!$C$21;[@Alter]>='Tabelle Altersstufe'!$B$21);([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$21);
WENN([@Alter]>='Tabelle Altersstufe'!$B$22;([@[Soll € / Std. TVöD]]*'Tabelle Altersstufe'!$D$22);"Fehler in Formel")))))))))))))
_____________
Die Formel gleicht ab, in welcher Altersstufe sich der Mitarbeiter befindet. Dafür ist das Alter jedes Mitarbeiters ebenfalls in der Haupttabelle berechnet.
ERGÄNZUNG (Auszug aus Tabelle 1):
Rot eingerahmt sind die wichtigen Werte. Die Berechnungsgrundlagen bilden der Tarifstundenlohn, hier unter "Soll € / Std. TVöD" und das Alter. Unter "TVöD SuE + Alter / Std." befindet sich in jeder Zeile die obige Funktion, welche unverändert bleibt. Konfus ist, dass die ersten drei Berechnungen problemlos funktionieren und die vierte dann nicht. Obwohl zB das Alter 29 in der zweiten Zeile ebenfalls vorkommt. Vielleicht hat dadurch jetzt jemand eine Idee?
2 Antworten
Du könntest folgende Abfrage machen. Eine weitere (Treffer-)Spalte nutzen
z.B. dabei das Alter in G2 eingeben, den Rest per SVerweis abholen

- A2 ff fragt ab, ob das Alter für die Gruppe zutrifft.
- H2 und I2 holen jeweils die treffenden Ergebnisse ab
Habe noch ein weiteres Bild zum Verständnis beigefügt ("X" - Version 😉)
Da es beim Alter von ? bis ? keinen konkreten Treffer für den SVerweis gibt, muss eine Eindeutigkeit erzeugt werden. Das geschieht in der Spalte A
Die "X-.Version ist vielleicht etwas weniger verwirrend.
Okay, vielen Dank. Ich probiere das mal aus. Ich hätte jetzt gedacht, dass mein Fehler in der UND-Funktion selber ist und dann in der SVERWEIS-Funktion identisch fehlerhaft sei. Also im Sinne eines Logikfehlers. Da kann ich ja lange suchen :) Ich werde berichten.
Ich habe jetzt nicht versucht, die Formel zu analysieren.
Ich frage mich nur: warum löst man so etwas so umständlich?
Es gibt Dinge wie VERGLEICH oder (von mir nicht gerne eingesetzt) SVERWEIS.
Vielen Dank für deine Anregung. Mit SVERWEIS könnte ich dies nur lösen, wenn ich jedes Alter listen würde. Ich habe ja aber nur von bis und die Zwischenwerte nicht. Mit Vergleich könnte ich die Formel minimal verkürzen, jedoch scheint mir vor allem die sich wiederholende UND()-Formel fehlerhaft und auf die könnte ich ja aufgrund der Logik "WENN Alter zwischen x und y" so oder so nicht verzichten.
Mit "Vergleich" kannst du - wenn das Alter aufsteigend sortiert ist - natürlich auf das UND verzichten.
Aber wenn du sagst, das geht nicht, dann ist es auch müßig, dich bei der Umsetzung zu unterstützen.
Schönen Tag noch
Vielen Dank für Ihre äußerst unangebrachte toxische Nachricht. Ich möchte ja die Altersstufen eben genau wie im Screenshot oben zu sehen einfach halten, damit zukünftige Änderungen einfach eingepflegt werden können. Und deshalb muss ich mit Bereichen arbeiten, da ja sonst, falls ich zB Stufe A1 bis 22 Jahre erweitern möchte viel zu viele Werte in einer langen Liste von meinetwegen 15-100 Jahren ändern müsste. In der jetzigen "Altersstufe"-Tabelle wären es nur je zwei Werte, die zunächst geändert werden müssten. Warum muss ich nun Sie um Erlaubnis fragen, das für zukünftige Fälle zu erleichtern? Ich glaube, das muss ich nicht. Mir geht es um die Frage, warum die = in der UND-Funktion nicht erkannt werden. Wenn Sie das irgendwie triggert und Sie sich durch meine Funktion beleidigt fühlen, warum sind Sie dann hier? Die Nutzung von SVERWEIS und VERGLEICH lösen das Problem mit der aktuellen "Altersstufe"-Tabelle doch nicht. Ihr Ansatz war doch nett und ich habe mich doch bedankt, aber er führt nun mal an der Funktionalität meines Rechners vorbei. Das konnten Sie nicht wissen und ich habs Ihnen gesagt. Warum ist man dann beleidigt? Wir sind doch keine 10 Jahre alt.
Was genau löst die Funktion, die du oben im Screenshot geschrieben hast denn? Wenn ich das richtig verstehe wird 31 aus der linken Tabelle genommen und als Referenzwert in der SVERWEIS-Funktion verwendet, um diesen in der rechten Tabelle dann wieder zu finden und H2 mit der passenden Prozentzahl zu füllen. Stimmt das? Was ich benötige ist genau das, nur ohne "zutreffend", sondern eine Funktion, in meinem Fall habe ich die UND-Funktion verwendet, die genau das für den gesamten Zahlenbereich 29-32 nutzt, ohne dass ich jeweils eine Zelle für 29,30,31 und 32 schreiben muss. Ich ergänze nochmal die Frage oben mit einem passenden Screenshot. Da sieht man, dass drei Berechnungen mit der obigen Formel einwandfrei funktionieren, jedoch die vierte Berechnung fehlschlägt.