J'ai des données d'une base de données qui attribue une colonne pour le numéro du mois en cours lorsque les données sont extraites, puis crée des colonnes séparées pour les mois précédents en remontant. Ainsi, pour une extraction de données de 24 mois à partir de septembre, il y aura une colonne "Mois en cours" qui a la valeur "9" pour toutes les lignes, puis elle aura 24 colonnes avec l'en-tête d'indice "_01", "_02", ... "_24", qui signifie "août 2021", "juillet 2021",..."septembre 2019".
J'ai utilisé une formule manuelle à mettre chaque mois, mais je voudrais automatiser cela en utilisant la valeur "Mois en cours". Je n'ai aucune idée de comment faire cela, à la fois pour le mois et l'année, puisque l'année change en fonction de la valeur du mois en cours.
Toute aide serait très appréciée!
Il s'agit d'un script de table de données pour un exemple de ligne de 24 mois avec une colonne DateKey générée manuellement basée sur la valeur du mois en cours étant septembre :
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
Merci beaucoup, ça marche très bien !
Voici une solution possible en utilisant l'incrément de date. Fait comme Formule mais devrait être assez facile à utiliser en boucle si vous voulez renommer des colonnes :
CurMonth = 9;
currentDate = Date DMY(1, curmonth, Year(Today()));
Date Increment(currentDate, "Month", -1 * Num(:Month), "start");
Le premier curMonth est utilisé pour générer currentDate en supposant que l'année de début est la même que l'année en cours, puis cette date est utilisée dans la fonction d'incrémentation de date.
