Hallo,
Zitat:... ob man es um modellieren kann, so dass er vom letzten Eintrag aus rechnet und nicht vom ersten Eintrag das Intervall raufpackt?
dazu habe ich die benutzerdef.Funktion "KontrollierenDaten" wie folgt modifiziert:
Code:
KontrollierenDaten = LAMBDA(arIntervalle; arMonate; AktDatum; Zl; Sp;[Orientierung];
LET(
Ausrichtung; WENN(WURDEAUSGELASSEN(Orientierung);"Ende";Orientierung);
ArtDt; WEGLASSEN(arIntervalle:arMonate; 1; 1);
AktMo; DATUM(JAHR(AktDatum); MONAT(AktDatum); 1);
AktSp; XVERGLEICH(AktMo; arMonate; 0);
WENN(
Sp < AktSp;
FALSCH;
LET(
intv; INDEX(arIntervalle; Zl; 1);
zlIbisJ; LÄNGE(ÜBERNEHMEN(INDEX(ArtDt; Zl; 0); AktSp));
WENN(
Ausrichtung = "Ende";
LET(LetztSp; SPALTEN(arMonate); REST(LetztSp - Sp; intv) = 0 );
LET(ErstSp; XVERGLEICH(WAHR; zlIbisJ > 0; 0); REST(Sp - ErstSp; intv) = 0 )
)
)
)
)
);;
Ich habe zu den 5 Aufrufparametern der bisherigen Funktion einen
sechsten, optionalen Parameter "Orientierung" hinzugefügt:
Wird er ausgelassen, wird die funktionsinterne Variable "Ausrichtung" auf "Ende" gesetzt.
Wird er hingegen explizit angegeben, wird die interne Variable "Ausrichtung" auf den angegebenen Wert gesetzt.
Hat also die interne Variable "Ausrichtung" den Wert "Ende", werden die Intervalle, ausgehend von der letzten Monatsspalte, berechnet bis zur aktuellen Monatsspalte.
Hat die interne Variable "Ausrichtung" einen anderen Wert als "Ende", werden die Intervalle wie bisher gehabt berechnet.
Im
Zellbereich E2:AB18 habe ich die folgende Formel zur Anwendung des
bedingten Formates eingegeben:
=KontrollierenDaten($D$2:$D$18;$E$1:$AB$1; HEUTE(); ZEILE($A1);SPALTE(A$1);$A$2) d.h. man kann mit dem Inhalt von
Zelle A2 die Orientierung (bzw. Ausrichtung) steuern. Ich habe dort "Ende" angegeben (damit die Intervallangabe von der letzten Monatsspalte aus erfolgt). Gibst du etwas anderes in A2 ein, erfolgt die Intervallangabe wie bisher (ab der 1. nicht leeren Spalte ab dem aktuellen Monat).
Datei liegt bei.
Gruß Anton.
Windows 10 64bit
Office365 32bit