crear una nueva columna y establecer cada valor de fila de una columna diferente en función de otra columna (variable de nombre de columna)Hola,

Tengo datos similares al ejemplo de la imagen. Las primeras 6 columnas están relacionadas. Creé MaxCol para determinar quién tiene el valor máximo según las primeras 3 columnas. Luego, quiero crear la columna MaxValFromCol, que tomará el valor de una de las columnas 4-6. Tomará el valor de la columna 4-6 según MaxCol. Intenté establecer el valor de MaxValFromCol usando Column(char(:MaxCol) || "_t"), pero no tuve éxito. ¿Alguien podría sugerir cómo podemos tomar el valor de una columna como nombre de columna y establecer el valor en función de él?
Automatización y scriptingRe: crear una nueva columna y establecer cada valor de fila de una columna diferente en función de otra columna (variable de nombre de columna)Aquí está la fórmula que se me ocurrió para MaxCol
As Constant(
startCol = 1;
endCol = 3;
nCol = (endCol - startCol) + 1;
dt = Current Data Table();
colNames = dt << get column names;
);
theMax = Loc( dt[Row(), Index( startCol, endCol )], Max( dt[Row(), Index( startCol, endCol )] ) );
theMax = (theMax + startCol) - 1;
colNames[theMax][1];
y aquí está la fórmula para MaxValFromCol
As Constant(
startCol = 1;
endCol = 3;
nCol = (endCol - startCol) + 1;
dt = Current Data Table();
colNames = dt << get column names();
);
theMax = Loc( dt[Row(), Index( startCol, endCol )], Max( dt[Row(), Index( startCol, endCol )] ) )
+ncol;
Parse( Char( colNames[themax][1] ) );

Es tarde en la noche y estoy seguro de que otros tendrán mejores soluciones.
Re: crear una nueva columna y establecer cada valor de fila de una columna diferente en función de otra columna (variable de nombre de columna)Hola Jim,
Puedo obtener MaxCol. Lo que quiero que MaxValFromCol sea el valor de las columnas 4-6, no el nombre de la columna. Por ejemplo, si la fila 1 es MaxCol =="Lily", la fila 1 de MaxValFromCol tomará el valor de Lily_t, que es 4|5. La fila 2 es 4|4 porque la fila 2 de MaxCol es Mike, por lo que 4|4 proviene de Mike_t.

Re: crear una nueva columna y establecer cada valor de fila de una columna diferente en función de otra columna (variable de nombre de columna)Para pocas columnas, creo que puedo usar la condición if como se muestra a continuación, pero tengo demasiadas. Me pregunto si hay alguna forma de usar el valor MaxCOl como variable para llamar a la columna.
Si solo hay unas pocas columnas, lo siguiente puede funcionar:
si(:MaxCol =="Lily", :Lily_t,
:MaxCol =="Mike", :Mike_t,
:MaxCol =="Dan", :Dan_t,
)
Esperando tener algo simple como lo que se muestra a continuación cuando tengo cientos de columnas.
MaxValFromCol == Columna(char(:MaxCol)||"_t")
Re: crear una nueva columna y establecer cada valor de fila de una columna diferente en función de otra columna (variable de nombre de columna)Mi error... tarde en la noche... lo corregiré.
Aquí están las 2 fórmulas que tengo funcionando

As Constant(
startCol = 1;
endCol = 3;
nCol = (endCol - startCol) + 1;
dt = Current Data Table();
colNames = dt << get column names( string );
);
theMax = Loc( dt[Row(), Index( startCol, endCol )], Max( dt[Row(), Index( startCol, endCol )] ) );
theMax = (theMax + startCol) - 1;
x = colNames[theMax][1];
x;
As Constant(
startCol = 1;
endCol = 3;
nCol = (endCol - startCol) + 1;
dt = Current Data Table();
colNames = dt << get column names( string );
);
theMax = Loc( dt[Row(), Index( startCol, endCol )], Max( dt[Row(), Index( startCol, endCol )] ) )
+ncol;
Eval( Parse( "x=:" || colNames[theMax][1] ) );
Re: crear una nueva columna y establecer cada valor de fila de una columna diferente en función de otra columna (variable de nombre de columna)No estoy muy seguro de si usaría algo así, pero podría funcionar.
As Column(Column(:Column 1 ||"_t"))
Lo más probable es que también puedas eliminar la Columna()
As Column(:Column 1 || "_t")