Referencia a una columna por número de columna en Fórmula en un bucle ForHola a todos,
Estoy tratando de generar un montón de nuevas columnas a la vez utilizando un bucle "for", y cada columna se nombrará como el siguiente elemento en la matriz de "muestra". Puedo imaginar esa parte, creo. Pero también quiero que cada columna incluya una fórmula para buscar una columna diferente, que será diferente cada vez, y restar ese valor del valor inicial (columna "0"). Cuando ejecuto esto, solo me da los errores de evaluación de la fórmula, no calculando qué debe ser la columna a la que hace referencia.
¡Gracias por tu ayuda!
sample = {0, 1, 2, ...}
new columns = N Items (sample);
for( i=1, i<= new columns, i++, col = num(sample [i]);
dt << New Column (sample [i] || " Days", formula (as column (13+i+new columns) - :Name("0")))
);Re: referenciar una columna por número de columna en Fórmula en un bucle For¡¡Muchas gracias!!
Re: referenciar una columna por número de columna en Fórmula en un bucle ForMi error. La cadena debe analizarse para deshacerse del par de comillas
Names Default To Here( 1 );
dt = Current Data Table();
sample = {0, 1, 2};
new columns = N Items( sample );
For( i = 1, i <= new columns, i++,
col = Num( sample[i] );
colNamesList = dt << Get Column Names;
Wait( 0 );
Eval(
Substitute(
Expr(
dt << New Column( sample[i] || " Days",
formula( __column__ - :Name( "0" ) )
)
),
Expr( __column__ ),
Parse(":Name(\!"" || colNamesList[13 + i + new columns] || "\!")")
)
);
);Re: referenciar una columna por número de columna en Fórmula en un bucle For¡¡Gracias por tu ayuda!! Esta solución casi funciona, pero estoy atascado en un último bit.
Actualmente, la hoja de cálculo resultante me da la siguiente fórmula.
":Name(\!"5\!")" - 0
Quiero que la primera mitad haga referencia a una columna llamada "5", como la segunda mitad hace referencia a una columna llamada "0". No importa lo que haga, no puedo hacer que la primera mitad solo muestre: Nombre ("5"). Cuando reformato las comillas o intento moverlas, solo obtengo variaciones sobre ese tema.
¡Gracias de nuevo!
Re: referenciar una columna por número de columna en Fórmula en un bucle ForEl problema con su fórmula actual, son las variables "i". Y "Nuevas columnas". Lo que está asumiendo es que el cálculo se evaluará hasta un cálculo final y luego se colocará en la función As Column (). El problema es que lo que se coloca en la fórmula es Como columna (13 + i + nuevas columnas). Entonces, cuando se ejecuta la fórmula, no tiene los valores de "i" y "nuevas columnas" cuando creó la columna, pero utiliza los valores que sean cada vez que calcula o recalcula las fórmulas. Y dado que "i" y "Nuevas columnas" están cambiando dentro de su script, tiene un problema. Ahora puede cambiar la fórmula para realizar el cálculo antes de definir la fórmula y luego sustituir el número de columna en la fórmula. Sin embargo, el problema con esto es que al usar números de columna, si una columna de la tabla se mueve o se elimina, el número de columna en la fórmula no se modificará y, por lo tanto, el cálculo será incorrecto. Le sugiero que en su lugar, sustituya en la fórmula, el nombre real de la columna. El siguiente script ilustra el enfoque para hacer eso.
Names Default To Here( 1 );
dt = Current Data Table();
sample = {0, 1, 2};
new columns = N Items( sample );
For( i = 1, i <= new columns, i++,
col = Num( sample[i] );
colNamesList = dt << Get Column Names;
Wait( 0 );
Eval(
Substitute(
Expr(
dt << New Column( sample[i] || " Days",
formula( __column__ - :Name( "0" ) )
)
),
Expr( __column__ ),
":Name(\!"" || colNamesList[13 + i + new columns] || "\!")"
)
);
);