Letzter Tag im Monat kennzeichnen
Ich habe wieder mal ein Thema, bei dem ich nicht recht weiterkommen. Ich habe eine Tabelle mit einem Datumsfeld (TTMMYYYY) und einem Wert (Value). Nun möchte ich die Werte in einem separaten Feld (Funktionsfeld) kennzeichnen, die im laufenden Monat als letzte erscheinen. Beispiel:
01.01.2020 130
05.01.2020 500 (X)
02.02.2020 100
28.02.2020 1.000 (X)
Mein Gedankenansatz geht in Richtung max-Funktion. Aber ich habe noch keinen funktionierende Lösung hinbekommen.
5 Antworten
-
Hallo Eichelfr,
die Lösung kann so aussehen:
---
let me:=this;
let myChoice:=select Tabelle [yearmonth(Datum)=yearmonth(me.Datum)];
if cnt(myChoice[Datum>me.Datum])=0 then "(x)" else "" end
---
Die Formel ist sehr Rechenintensiv und bei größeren Tabellen kann es zu Performance-Problemen führen.
Leo
-
Hallo Leo, klappt super - lediglich wenn ich mehrere Einträge für den letzten Tag im Monat habe, bekomme ich mehrere kennzeichnungen. Hier sollte tatsächlich nur der letzte Datensatz markiert werden. Die Berechnung lasse ich in ein Feld schreiben (bei Aktualisierung), da über ein Funktionsfeld die Performance in der Tat zu umfassend ist.
Frank
-
Dann sollte es so gehen:
---
let me:=this;
let myChoice:=select Tabelle [yearmonth(Datum)=yearmonth(me.Datum) and cnt(myChoice[Datum>me.Datum])=0];
if cnt(myChoice[number(Nr)>me.number(Nr)])=0 then "(x)" else "" end
---
Leo
-
Guten Morgen Leo,
vielen Dank für den angepassten Script-Entwurf. Allerdings gibt es in der Definition myChoice ein Problem, da Du dort gleich wieder die definierte Funktion aufgreiftst. Bei mir führt das zu einem Fehler. Das Script müsste vermutlich auf zwei Zeilen aufgeteilt werden, oder? Frank
-
Hallo Frank,
wie peinlich...
---
let me := this;
let myChoice := (select Tabelle)[yearmonth(Datum) = yearmonth(me.Datum) and Datum >= me.Datum];
if cnt(myChoice[number(Nr) > me.number(Nr)]) = 0 then
"(x)"
else
""
end
---
Content aside
- vor 3 JahrenZuletzt aktiv
- 5Antworten
- 294Ansichten