Ich habe Daten aus einer Datenbank, die beim Abrufen der Daten eine Spalte für die Nummer des aktuellen Monats zuweist und dann separate Spalten für die Rückzählung der vorherigen Monate erstellt. Für einen 24-Monats-Datenabruf ab September gibt es also eine Spalte „Aktueller Monat“, die für alle Zeilen den Wert „9“ hat, dann hat sie 24 Spalten mit den tiefgestellten Überschriften „_01“, „_02“, ... „_24“, was „Aug 2021“, „Jul 2021“, … „Sep 2019“ bedeutet.
Ich habe für die Eingabe jedes Monats eine manuelle Formel verwendet, möchte dies jedoch mithilfe des Werts „Aktueller Monat“ automatisieren. Ich habe keine Ahnung, wie das sowohl für den Monat als auch für das Jahr geht, da sich das Jahr je nach dem Wert für den aktuellen Monat ändert.
Jede Hilfe wäre sehr dankbar!
Dies ist ein Datentabellenskript für ein 24-Monats-Zeilenbeispiel mit einer manuell generierten DateKey-Spalte basierend auf dem Wert „Aktueller Monat“ (September):
dt=New Table( "Set Month with Key Example",
Add Rows( 24 ),
Compress File When Saved( 1 ),
New Column( "Month",
Character,
"Nominal",
Set Values(
{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12",
"13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"}
)
),
New Column( "DateKey",
Character,
Set Values(
{"01082021", "01072021", "01062021", "01052021", "01042021", "01032021", "01022021", "01012021", "01122020", "01112020", "01102020", "01092020", "01082020", "01072020", "01062020", "01052020", "01042020", "01032020", "01022020", "01012020", "01122019", "01112019", "01102019", "01092019"}
)
)
);
<BR />dt:DateKey << Data Type( Numeric, Format( "m/y", 8 ), Input Format( "ddmmyyyy" ) ) <<<BR />Set Modeling Type( "Continuous" ) << Set Field Width( 12 );
CurMonth=9;
Monique
Vielen Dank, das funktioniert super!
Hier ist eine mögliche Lösung mithilfe der Datumserhöhung. Wird als Formel durchgeführt, sollte aber relativ einfach in einer Schleife zu verwenden sein, wenn Sie Spalten umbenennen möchten:
CurMonth = 9;
currentDate = Date DMY(1, curmonth, Year(Today()));
Date Increment(currentDate, "Month", -1 * Num(:Month), "start");
Zuerst wird curMonth verwendet, um das aktuelle Datum zu generieren, unter der Annahme, dass das Startjahr mit dem aktuellen Jahr übereinstimmt. Anschließend wird dieses Datum in der Funktion „Datumsinkrement“ verwendet.
