Hola foro!
Quiero colorear celdas en columnas que comienzan con "Diff" que tiene un valor mayor que .1 O tiene un valor faltante (.) El número de columnas que comienzan con "Diff" aumentará a medida que crezca el conjunto de datos. Esto es lo que tengo hasta ahora, pero probablemente no funcionará a largo plazo a medida que el número o las columnas crezcan.
Nombres predeterminados aquí (1);
dt = tabla de datos actual ();
dt: Diff T00 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T00> = .1));
dt: Diff T01 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T01> = .1));
dt: Diff T02 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T02> = .1));
dt: Diff T03 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T03> = .1));
dt: Diff T04 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T04> = .1));
dt: Diff T05 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T05> = .1));
dt: Diff T06 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T06> = .1));
dt: Diff T07 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T07> = .1));
dt: Diff T08 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T08> = .1));
dt: Diff T09 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T09> = .1));
dt: Diff T10 << celdas de color ("Rojo", dt << obtener filas donde (dt: Diff T10> = .1));

Hubo 2 errores .....
1. Revirtí la lógica de la función If () que había especificado .... Tenía "! =" Y tiene que ser "==".
2. Las referencias de colNames en las celdas de color () tenían que hacer referencia a la columna específica ... mi error también
También he limpiado un poco tu código ... nada importante,
Names Default To Here( 1 );
dt1 = Open(
Pick File(),
columns(
Column( "IM#", Character, "Nominal" ),
Column( "LREQ", Numeric, "Continuous", Format( "Best", 10 ) ),
Column( "DATE/TIME", Character, "Nominal" ),
Column( "T(x)", Character, "Nominal" ),
Column( "BOARD", Numeric, "Continuous", Format( "Best", 10 ) ),
Column( "CHANNEL", Numeric, "Continuous", Format( "Best", 10 ) ),
Column( "DATA", Numeric, "Continuous", Format( "Best", 10 ) )
),
Import Settings(
End Of Line( CRLF ),
End Of Field( Tab, Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
) << Set Name( "DT1" );
Data Table( "DT1" ) << Sort(
By( :BOARD, :CHANNEL, :Name( "T(x)" ) ),
Order( Ascending, Ascending, Ascending ),
replace table
) << New Column( "T00 Value",
formula( If( :Name( "T(x)" ) == "T00", :Data, :T00 Value[Row() - 1] ) )
) << New Column( "Diff",
formula( (:Data - :T00 Value) / :T00 Value ),
Format( "Percent" )
);
dt = Data Table( "DT1" ) << Split(
Split By( :Name( "T(x)" ) ),
Split( :DATA, :Name( "Diff" ) ),
Group( :IM#, :LREQ, :BOARD, :CHANNEL ),
Remaining Columns( Drop All ),
Output Table Name( "DT2" )
);
Close( Data Table( "DT1" ), No Save );
//Names Default To Here( 1 );
//dt = Current Data Table();
colNames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colNames ), i++,
If( Left( colNames[i], 4 ) == "Diff",
Column( dt, colNames[i] ) << color cells(
"Red",
dt << get rows where( As Column( dt, colNames[i] ) >= .1 )
)
)
);
Hmmm ... eso es extraño. La columna wong se resalta. He adjuntado el script y el csv. Recibo un error que dice que la columna "Datos" debe ser un tipo de carácter. Pero necesito que sea numérico para el cálculo.
Valores en columnas que comienzan con Diff ***> .1 == Red
Valores en columnas que comienzan con Diff *** = valores perdidos == rojo

Creo que algo como esto funcionará.
Names Default To Here( 1 );
dt = Current Data Table();
colNames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colNames ), i++,
If( Left( colNames[i], 4 ) != "Diff",
Column( dt, colNames ) << color cells( "Red", dt << get rows where( As Column( dt, colNames ) >= .1 ) )
)
);