Ciao Forum!
Voglio colorare le celle nelle colonne che iniziano con "Diff" che ha un valore maggiore di .1 OR ha un valore mancante (.) Il numero di colonne che iniziano con "Diff" aumenterà con l'aumentare del set di dati. Ecco cosa ho fino ad ora ma probabilmente non funzionerà a lungo termine man mano che il numero # o le colonne crescono.
Nomi predefiniti qui (1);
dt = current data table ();
dt: Diff T00 << celle a colori ("Rosso", dt << ottieni le righe dove (dt: Diff T00> = .1));
dt: Diff T01 << celle a colori ("Rosso", dt << recupera le righe dove (dt: Diff T01> = .1));
dt: Diff T02 << celle a colori ("Rosso", dt << recupera le righe dove (dt: Diff T02> = .1));
dt: Diff T03 << celle a colori ("Rosso", dt << recupera le righe dove (dt: Diff T03> = .1));
dt: Diff T04 << celle a colori ("Rosso", dt << recupera le righe dove (dt: Diff T04> = .1));
dt: Diff T05 << celle a colori ("Rosso", dt << recupera le righe dove (dt: Diff T05> = .1));
dt: Diff T06 << celle a colori ("Rosso", dt << recupera le righe dove (dt: Diff T06> = .1));
dt: Diff T07 << celle colore ("Rosso", dt << recupera le righe dove (dt: Diff T07> = .1));
dt: Diff T08 << celle a colori ("Rosso", dt << recupera le righe dove (dt: Diff T08> = .1));
dt: Diff T09 << celle colore ("Rosso", dt << ottieni righe dove (dt: Diff T09> = .1));
dt: Diff T10 << celle di colore ("Rosso", dt << recupera le righe dove (dt: Diff T10> = .1));

C'erano 2 errori .....
1. Ho invertito la logica della funzione If () che avevo specificato .... avevo "! =" E deve essere "==".
2. I riferimenti di colnames nelle celle di colore () dovevano fare riferimento alla specifica colonna .... anche il mio errore
Ho anche ripulito un po 'il tuo codice ... niente di 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 ... è strano. La colonna wong viene evidenziata. Ho allegato lo script e csv. Ricevo un errore dicendo che la colonna "Dati" deve essere un tipo di carattere. Ma ho bisogno che sia numerico per il calcolo.
Valori nelle colonne che iniziano con Diff ***> .1 == Rosso
Valori nelle colonne che iniziano con Diff *** = valori mancanti == Rosso

Penso che qualcosa del genere funzionerà
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 ) )
)
);