Datums-Array: Aufeinanderfolgende Werte zusammenfassen
Hallo Community,
ich habe eine Tabelle, in der jeder Datensatz ein Datum hat. Nun möchte ich daraus Zeiträume auslesen bzw. erkennen, welche Datensätze zusammengehören (weil deren Datums-Werte aufeinander folgend sind).
Ich habe also einen Array wie diesen:
[01.12.2021,02.12.2021,03.12.2021,30.01.2022,31.01.2022,01.02.2022,...]
Daraus möchte ich auslesen:
Zeitraum 1: 01.12 - 03.12.
Zeitraum 2: 30.01 - 01.02.
Ich habe das mit einer for-Schleife versucht, komme aber auf keinen grünen Zweig...
Vielen Dank schon mal im Voraus!
6 Antworten
-
Knifflig. Falls hier jemand eine elegante Lösung hat, wäre ich neugierig. Mir ist nur Brutalcoding eingefallen;-). Mirko
-
Und noch etwas weniger Code und keine Variablenbezeichnung geklaut. ;-):
let P := ((select Tabelle4) order by Datum).Datum;
if even(cnt(P)) then
let vArray := [];
let vZeitraum := [];
let j := 1;
for i in range(0, cnt(P)) do
if even(i) then
vZeitraum := "Zeitraum " + j + ": " + item(P, number(i)) + " - " + item(P, number(i) + 1);
vArray := array(vArray, vZeitraum);
j := j + 1
end
end;
replace(join(vArray, ","), ",", "
")
end -
Hi Uwe. Das muß ich erst mal verarbeiten. An Arrays befüllen habe ich auch gedacht, da bin ich aber nicht erfolgreich gewesen. Noch differieren aber unsere Ergebnisse. Hier mal ein Screenshot mit den Daten meiner Testtabelle. Sieht so aus, als ob bei Deiner Formel noch nicht die Grenzdatumwerte genau getroffen sind. Aber vielleicht habe ich TEST-Benutzer auch falsch verstanden. Ich werde mir Dein Script heute Abend mal ansehen. Ich denke, da ist etwas zum Lernen für mich dabei. Gruß Mirko
Content aside
- vor 3 JahrenThu, June 30, 2022 at 9:40 AM UTCZuletzt aktiv
- 6Antworten
- 205Ansichten
-
2
Folge bereits