Tengo datos de una base de datos que asigna una columna para el número del mes actual cuando se extraen los datos, y luego crea columnas separadas para los meses anteriores contando hacia atrás. Entonces, para una extracción de datos de 24 meses a partir de septiembre, habrá una columna "Mes actual" que tiene el valor "9" para todas las filas, luego tendrá 24 columnas con el encabezado de subíndice "_01", "_02", ... "_24", que denota "agosto de 2021", "julio de 2021", ... "septiembre de 2019".
Usé una fórmula manual para poner cada mes, pero me gustaría automatizar esto usando el valor del "Mes actual". No tengo idea de cómo hacer esto, tanto para el mes como para el año, ya que el año cambia según el valor del mes actual.
¡Cualquier ayuda sería muy apreciada!
Este es un script de tabla de datos para un ejemplo de fila de 24 meses con una columna DateKey generada manualmente según el valor del mes actual que es septiembre:
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
Aquí hay una posible solución usando el Incremento de fecha. Hecho como fórmula, pero debería ser bastante fácil de usar en bucle si desea cambiar el nombre de las columnas:
CurMonth = 9;
currentDate = Date DMY(1, curmonth, Year(Today()));
Date Increment(currentDate, "Month", -1 * Num(:Month), "start");
First curMonth se usa para generar currentDate con el supuesto de que el año de inicio es el mismo que el año actual, luego esa fecha se usa en la función de Incremento de fecha.
