Nach Datum aktualisieren
#11
Hallo

Aus deiner Datei ist nix vernünftiges raus zu lesen!
Wann ist was In Ordnung??
Wann ist eine Nachprüfung fällig??
Wann muss entsorgt werden??
Wann tritt Sonstiges in Kraft??
Das Jahr spielt bei sowas immer eine große Rolle.
usw.
Viele Grüße
PIVPQ
Antworten Top
#12
Hallo,

ich habe dir in den Namensmanager den Namen "KontrollierenDaten" einer benutzerdef. Funktion eingefügt.
Code:
KontrollierenDaten = LAMBDA(arIntervalle; arMonate; AktDatum; Zl; Sp; LET(
    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));
            ErstSp; XVERGLEICH(WAHR; zlIbisJ > 0; 0);
            REST(Sp - ErstSp; intv) = 0
        )
    )
));;
Diese benötigt 5 Paramater:
1) arIntervalle: den Bereich mit den Intervallen (bei dir: $D$2:$D$18)
2) arMonate: den Bereich mit den Monatsangaben (bei dir: $E$1:$AB$1, umgestellt auf echte Datumsangaben für den Monatsersten)
3) AktDatum: das aktuelle Datum (zB. für  HEUTE())
4) Zl: die Zeilennummer der Zelle fürs bedingte Format
5) Sp: die Spaltennummer der Zelle fürs bedingte Format

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))

Diese Formel liefert im Zellbereich E2:AB18 entweder WAHR oder FALSCH zurück, je nachdem ob der Zellhintergrund gelb gefärbt werden soll oder nicht.

Datei liegt bei.


Angehängte Dateien
.xlsx   Banadura_Mappe1.xlsx (Größe: 16,21 KB / Downloads: 14)
Gruß Anton.

Windows 10 64bit
Office365 32bit
[-] Folgende(r) 1 Nutzer sagt Danke an EA1950 für diesen Beitrag:
  • Banadura
Antworten Top
#13
(01.09.2024, 14:36)EA1950 schrieb: Hallo,

ich habe dir in den Namensmanager den Namen "KontrollierenDaten" einer benutzerdef. Funktion eingefügt.
Code:
KontrollierenDaten = LAMBDA(arIntervalle; arMonate; AktDatum; Zl; Sp; LET(
    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));
            ErstSp; XVERGLEICH(WAHR; zlIbisJ > 0; 0);
            REST(Sp - ErstSp; intv) = 0
        )
    )
));;
Diese benötigt 5 Paramater:
1) arIntervalle: den Bereich mit den Intervallen (bei dir: $D$2:$D$18)
2) arMonate: den Bereich mit den Monatsangaben (bei dir: $E$1:$AB$1, umgestellt auf echte Datumsangaben für den Monatsersten)
3) AktDatum: das aktuelle Datum (zB. für  HEUTE())
4) Zl: die Zeilennummer der Zelle fürs bedingte Format
5) Sp: die Spaltennummer der Zelle fürs bedingte Format

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))

Diese Formel liefert im Zellbereich E2:AB18 entweder WAHR oder FALSCH zurück, je nachdem ob der Zellhintergrund gelb gefärbt werden soll oder nicht.

Datei liegt bei.


Super geil, vielen Dank!

Besser ging es echt nicht, ist sogar interaktiv und verursacht keine Probleme, Respekt <3
Antworten Top
#14
Hey, tut mir leid für den späten push. Ich wollte nur mal fragen ob man es um modellieren kann, so dass er vom letzten Eintrag aus rechnet und nicht vom ersten Eintrag das Intervall raufpackt?
[-] Folgende(r) 1 Nutzer sagt Danke an Banadura für diesen Beitrag:
  • Ubi5
Antworten Top
#15
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.


Angehängte Dateien
.xlsx   Banadura_Mappe1.xlsx (Größe: 16,29 KB / Downloads: 5)
Gruß Anton.

Windows 10 64bit
Office365 32bit
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste