Supportnet / Forum / Tabellenkalkulation
Wenn-Formel-Fehler
Frage
In einer Wohnheimverwaltungsdatei wird der Einzug und Auszug der Mieter eingetragen.
In einer anderen Zelle wird der Abrechnungsmonat eingetragen.
Mit der u. g. Formel werden die nun tatsächlich abzurechnenden Tage ausgegeben.
Nun hat die u. g. Formel jedoch einen Fehler, wenn der Einzug zwischen 01. und 31.01.XXXX ist und der Abrechnungsmonat 31.01.XXXX, egal um was für ein Jahr es sich handelt, wird eine - Zahl ausgegeben, alle anderen Monate werden mit der Formel richtig gerechnet.
=WENN(ODER(E2+F2=0;E2>$J$2);0;WENN(UND(MONAT(E2)=MONAT($J$2);MONAT(F2)=MONAT($J$2));F2+1-E2;WENN(MONAT(E2)=MONAT($J$2);$J$2+1-E2;WENN(F2="";TAG($J$2);WENN(MONAT(F2)=MONAT($J$2);TAG(F2);0)))))
Antwort 1 von TJ
=WENN(ISTZAHL(A1);DATEDIF(A1;$D$13;"m");"")
Hallo Waßerm,
nimm mal die Formel, die ist was einfacher:-)
in a1 steht das Einzugsdatum und zb. in D13 das aktuelle Datum.
Gutes gelingen und viel Spass beim Testen.
TJ
Hallo Waßerm,
nimm mal die Formel, die ist was einfacher:-)
in a1 steht das Einzugsdatum und zb. in D13 das aktuelle Datum.
Gutes gelingen und viel Spass beim Testen.
TJ
Antwort 2 von Arnim
Hallo,
geht man davon aus, dass in J2 jeweils der Ultimo des Abrechnungsmonats steht, z.B. 31.03.2004 (Format MMMM), in E2 das Einzugs- und in F2 das Auszugsdatum, könnte man folgende Formel verwenden:
=WENN(E2>0;DATEDIF(E2;WENN(F2>J2;J2;F2);"d")+1;0)
Gruß Arnim
geht man davon aus, dass in J2 jeweils der Ultimo des Abrechnungsmonats steht, z.B. 31.03.2004 (Format MMMM), in E2 das Einzugs- und in F2 das Auszugsdatum, könnte man folgende Formel verwenden:
=WENN(E2>0;DATEDIF(E2;WENN(F2>J2;J2;F2);"d")+1;0)
Gruß Arnim
Antwort 3 von Wasserm
Vielen Dank für die bisherige Hilfe, funktionier jedoch nicht so wie meine Frage gemeint ist.
Denn ist der Einzug z. B. am 22.12.2003 "E4" der Abrechnungsmonat der 31.01.2004 "J2" muß für den Januar 31 Tage Miete berechnet werden.
Ist der Einzug der 22.12.2003 und der Auszug am 06.01.2004 und der Abrechnungsmonat der 31.01.2004 müssen für Januar 6 Tage Miete berechnet werden.
Über weitere Hilfe würde ich mich freuen.
Gruß Monika
Denn ist der Einzug z. B. am 22.12.2003 "E4" der Abrechnungsmonat der 31.01.2004 "J2" muß für den Januar 31 Tage Miete berechnet werden.
Ist der Einzug der 22.12.2003 und der Auszug am 06.01.2004 und der Abrechnungsmonat der 31.01.2004 müssen für Januar 6 Tage Miete berechnet werden.
Über weitere Hilfe würde ich mich freuen.
Gruß Monika
Antwort 4 von Aliba
Hi Monika,
probiers hiermit:
=((UND(($J$2-TAG($J$2)+1)<=E2;MONAT($J$2)=MONAT(E2);$J$2>=F2)*F2<>0)*(F2-E2+1)+(UND(($J$2-TAG($J$2)+1)<=E2;MONAT($J$2)=MONAT(E2);ODER($J$2<F2;F2*1=0)))*(TAG($J$2)-TAG(E2)+1)+(UND(E2<($J$2-TAG($J$2)+1);$J$2>=F2))*TAG(F2)+(UND(E2<($J$2-TAG($J$2)+1);ODER(F2>$J$2;F2*1=0)))*TAG($J$2))*(E2<>0)*1
CU Aliba
probiers hiermit:
=((UND(($J$2-TAG($J$2)+1)<=E2;MONAT($J$2)=MONAT(E2);$J$2>=F2)*F2<>0)*(F2-E2+1)+(UND(($J$2-TAG($J$2)+1)<=E2;MONAT($J$2)=MONAT(E2);ODER($J$2<F2;F2*1=0)))*(TAG($J$2)-TAG(E2)+1)+(UND(E2<($J$2-TAG($J$2)+1);$J$2>=F2))*TAG(F2)+(UND(E2<($J$2-TAG($J$2)+1);ODER(F2>$J$2;F2*1=0)))*TAG($J$2))*(E2<>0)*1
CU Aliba
Antwort 5 von Arnim
Hallo Monika,
es soll also eine Abgrenzung zum Vorjahr geben? Das habe ich vorher nicht so gelesen.
Schau mal, ob es damit klappt:
=WENN(E2>0;DATEDIF(WENN(JAHR(E2)<JAHR(J2);DATUM(JAHR(J2);MONAT(J2);1);E2);WENN(F2>J2;J2;F2);"d")+1;0)
Gruß Arnim
Sehe gerade die Antwort von Aliba - schiche den Beitrag trotzdem los.
es soll also eine Abgrenzung zum Vorjahr geben? Das habe ich vorher nicht so gelesen.
Schau mal, ob es damit klappt:
=WENN(E2>0;DATEDIF(WENN(JAHR(E2)<JAHR(J2);DATUM(JAHR(J2);MONAT(J2);1);E2);WENN(F2>J2;J2;F2);"d")+1;0)
Gruß Arnim
Sehe gerade die Antwort von Aliba - schiche den Beitrag trotzdem los.
Antwort 6 von Arnim
Hallo Monika,
leider war ein Flüchtigkeitsfehler drin:
=WENN(E2>0;DATEDIF(WENN(JAHR(E2)<JAHR(J2);DATUM(JAHR(J2);1;1);E2);WENN(F2>J2;J2;F2);"d")+1;0)
Sorry!
Arnim
leider war ein Flüchtigkeitsfehler drin:
=WENN(E2>0;DATEDIF(WENN(JAHR(E2)<JAHR(J2);DATUM(JAHR(J2);1;1);E2);WENN(F2>J2;J2;F2);"d")+1;0)
Sorry!
Arnim
Antwort 7 von Aliba
Hi Arnim,
wenn ich es richtig verstehe, will Monika immer nur die Tage des Abrechungsmonates haben. Hierfür werden einfach 4 Abfragen benötigt:
1. Einzug vor Abrechnungsmonat, Auszug nach Abrechnungsmonat
2. Einzug im Abrechnungsmonat, Auszug nach dem Abrechnungsmonat
3. Einzug im Abrechnungsmonat, Auszug im Abrechnungsmonat
4. Einzug vor Abrechnungsmonat, Auszug im Abrechnungsmonat.
Desweiteren frage ich noch das Feld F2 ab, da ich davon ausgehe, dass dieses ja leer sein kann, wenn der Auszugstermin nicht bekannt ist.
Deine Formel grenzt nur das Jahr ab, aber nicht den Monat.
CU Aliba
wenn ich es richtig verstehe, will Monika immer nur die Tage des Abrechungsmonates haben. Hierfür werden einfach 4 Abfragen benötigt:
1. Einzug vor Abrechnungsmonat, Auszug nach Abrechnungsmonat
2. Einzug im Abrechnungsmonat, Auszug nach dem Abrechnungsmonat
3. Einzug im Abrechnungsmonat, Auszug im Abrechnungsmonat
4. Einzug vor Abrechnungsmonat, Auszug im Abrechnungsmonat.
Desweiteren frage ich noch das Feld F2 ab, da ich davon ausgehe, dass dieses ja leer sein kann, wenn der Auszugstermin nicht bekannt ist.
Deine Formel grenzt nur das Jahr ab, aber nicht den Monat.
CU Aliba
Antwort 8 von Arnim
Hallo Aliba,
Du wirst Recht haben! Da hätte sie gleich schreiben können, dass monatlich abgerechnet werden soll.
Meine Formel dann in etwa so:
=WENN(E2>0;DATEDIF(WENN((MONAT(E2)<>MONAT(J2));DATUM(JAHR(J2);MONAT(J2);1);E2);WENN((F2=0)+(F2>J2);J2;F2);"d")+1;0)
wobei ich mir nicht sicher bin, ob die Bedingung =Wenn(E2>0;...;0)
notwendig ist.
Gruß Arnim
Du wirst Recht haben! Da hätte sie gleich schreiben können, dass monatlich abgerechnet werden soll.
Meine Formel dann in etwa so:
=WENN(E2>0;DATEDIF(WENN((MONAT(E2)<>MONAT(J2));DATUM(JAHR(J2);MONAT(J2);1);E2);WENN((F2=0)+(F2>J2);J2;F2);"d")+1;0)
wobei ich mir nicht sicher bin, ob die Bedingung =Wenn(E2>0;...;0)
notwendig ist.
Gruß Arnim
Antwort 9 von Aliba
Hi Arnim,
hab die Formel mal getestet. Bei folgenden Bedingungen erhältst Du falsche Werte
1. Wenn das Einzugsdatum im selben Monat liegt wie das Abrechendatum, aber in einem anderen Jahr.
2. Wenn das Einzugsdatum höher ist als das Abrechendatum, hier sollte ja dann 0 rauskommen.
Bin aber schon der Meinung, dass die ganze Sache auch mit Datedif zu lösen ist, was dann wohl auch eine kürzere Formel zur Folge hat. Hab aber aus Zeitgründen mal einfach die einzelnen Bedingungen in meiner Formel aneinandergehängt.
CU Aliba
hab die Formel mal getestet. Bei folgenden Bedingungen erhältst Du falsche Werte
1. Wenn das Einzugsdatum im selben Monat liegt wie das Abrechendatum, aber in einem anderen Jahr.
2. Wenn das Einzugsdatum höher ist als das Abrechendatum, hier sollte ja dann 0 rauskommen.
Bin aber schon der Meinung, dass die ganze Sache auch mit Datedif zu lösen ist, was dann wohl auch eine kürzere Formel zur Folge hat. Hab aber aus Zeitgründen mal einfach die einzelnen Bedingungen in meiner Formel aneinandergehängt.
CU Aliba
Antwort 10 von Wasserm
Hallo Aliba,
recht herzlichen Dank für Deine Formel, klappt sehr gut, Du hast mir wirklich sehr geholfen.
Gruß Monika
recht herzlichen Dank für Deine Formel, klappt sehr gut, Du hast mir wirklich sehr geholfen.
Gruß Monika
Antwort 11 von Arnim
Hallo Aliba,
ich habe erst heute wieder die Möglichkeit ins Internet zu kommen. Obwohl das Thema schon gegessen ist, will icih aber trotzdem auf Deine Antwort an mich eingehen.
Wenn man die wenigen Angaben der Fragestellerin richtig interpretiert, handelt es sich immer um Monatsabrechnungen. Unten habe ich nun meine DATEDIF-Formel entsprechend angepasst, wobei ich von folgenden Annahmen ausging:
1. Einzug E2 erfolgt im Monat der Abrechnung, Auszug F2 im selben Monat: Tage = F2 - E2
2. Einzug E2 erfolgt im Vormonat der Abrechnung J2, Auszug F2 im Abrechnungsmonat: Tage = F2 - 1. d.Abrechnungsmonats
3. Einzug E2 in Vormonat(en) der Abrechnung J2, Auszug F2 (leer) boch nicht erfolgt: Tage = Abrechnungsmonat J2
4. Einzug E2 in Vormonat(en) der Abrechnung J2, Auszug F2 nach Abrechnung F2: Tage = 0, da Abrechnung f. diesen Monat J2 schon erfolgt ist! (d.h. Fehler des Eintrags in J2!)
Da es sich um Monatsabrechnungen handelt, ist es auch gleich, ob das Einzugsdatum im Vormonat des gleichen oder letzten Jahres liegt!
Man könnte noch eine Bedingung einbauen, dass 0 erscheint, wenn das Datum E2 größer als J2 ist - halte ich für überflüssig.
Die Formel:
=WENN((E2>0)*((F2=0)+(MONAT(F2)=MONAT(J2)));DATEDIF(WENN((MONAT(E2)=MONAT(J2))*(E2>1);E2;DATUM(JAHR(J2);WENN((MONAT(J2)<>MONAT(F2))*(F2=0);MONAT(J2);MONAT(F2));1));WENN((F2>J2)+(F2=0);J2;F2);"d")+1;0)
Ob diese oder Deine Formel kürzer ist oder nicht, halte ich ehrlich gesagt für schnurz! Und das gilt für mich allgemein. Wichtig ist doch m.E. immer das richtige oder falsche Ergebnis.Meinst Du nicht auch?
Nun wünsche ich Dir ein schönes Wochenende - vielleicht mit einem guten Bocksbeutel (um den ich Dich beneiden würde, vor allem, wenn es ein guter Silvaner ist).
Gruß Arnim
ich habe erst heute wieder die Möglichkeit ins Internet zu kommen. Obwohl das Thema schon gegessen ist, will icih aber trotzdem auf Deine Antwort an mich eingehen.
Wenn man die wenigen Angaben der Fragestellerin richtig interpretiert, handelt es sich immer um Monatsabrechnungen. Unten habe ich nun meine DATEDIF-Formel entsprechend angepasst, wobei ich von folgenden Annahmen ausging:
1. Einzug E2 erfolgt im Monat der Abrechnung, Auszug F2 im selben Monat: Tage = F2 - E2
2. Einzug E2 erfolgt im Vormonat der Abrechnung J2, Auszug F2 im Abrechnungsmonat: Tage = F2 - 1. d.Abrechnungsmonats
3. Einzug E2 in Vormonat(en) der Abrechnung J2, Auszug F2 (leer) boch nicht erfolgt: Tage = Abrechnungsmonat J2
4. Einzug E2 in Vormonat(en) der Abrechnung J2, Auszug F2 nach Abrechnung F2: Tage = 0, da Abrechnung f. diesen Monat J2 schon erfolgt ist! (d.h. Fehler des Eintrags in J2!)
Da es sich um Monatsabrechnungen handelt, ist es auch gleich, ob das Einzugsdatum im Vormonat des gleichen oder letzten Jahres liegt!
Man könnte noch eine Bedingung einbauen, dass 0 erscheint, wenn das Datum E2 größer als J2 ist - halte ich für überflüssig.
Die Formel:
=WENN((E2>0)*((F2=0)+(MONAT(F2)=MONAT(J2)));DATEDIF(WENN((MONAT(E2)=MONAT(J2))*(E2>1);E2;DATUM(JAHR(J2);WENN((MONAT(J2)<>MONAT(F2))*(F2=0);MONAT(J2);MONAT(F2));1));WENN((F2>J2)+(F2=0);J2;F2);"d")+1;0)
Ob diese oder Deine Formel kürzer ist oder nicht, halte ich ehrlich gesagt für schnurz! Und das gilt für mich allgemein. Wichtig ist doch m.E. immer das richtige oder falsche Ergebnis.Meinst Du nicht auch?
Nun wünsche ich Dir ein schönes Wochenende - vielleicht mit einem guten Bocksbeutel (um den ich Dich beneiden würde, vor allem, wenn es ein guter Silvaner ist).
Gruß Arnim
Antwort 12 von Aliba
Hi Arnim,
hatte leider auch keine Zeit hier reinzuschauen, deshalb kann ich dir nun kein schönes WE mehr wünschen, verschieb ich halt noch um ein paar Tage. Hast natürlich recht, daß es schnurz ist,wie lang so ne Formel halt mal ist, wenn denn das Ergebnis passt.
Silvaner war leider nicht, also gibts auch nichts zu beneiden. Im Gegenteil war viel Arbeit angesagt und nur am Sonntag blieben ein paar Stunden um aufs Sofa aufzupassen.
CU Aliba
hatte leider auch keine Zeit hier reinzuschauen, deshalb kann ich dir nun kein schönes WE mehr wünschen, verschieb ich halt noch um ein paar Tage. Hast natürlich recht, daß es schnurz ist,wie lang so ne Formel halt mal ist, wenn denn das Ergebnis passt.
Silvaner war leider nicht, also gibts auch nichts zu beneiden. Im Gegenteil war viel Arbeit angesagt und nur am Sonntag blieben ein paar Stunden um aufs Sofa aufzupassen.
CU Aliba

