Bonjour forum!
Je veux colorer les cellules dans les colonnes qui commencent par "Diff" qui a une valeur supérieure à .1 OU a une valeur manquante (.) Le nombre de colonnes qui commencent par "Diff" augmentera à mesure que l'ensemble de données grandit. Voici ce que j'ai jusqu'à présent mais qui ne fonctionnera probablement pas à long terme à mesure que le # ou les colonnes grandissent.
Les noms sont ici par défaut (1);
dt=table de données actuelle();
dt:Diff T00 << color cells("Red", dt<= .1));
dt:Diff T01 << color cells("Red", dt<= .1));
dt:Diff T02 << color cells("Red", dt<= .1));
dt:Diff T03 << color cells("Red", dt<= .1));
dt:Diff T04 << color cells("Red", dt<= .1));
dt:Diff T05 << color cells("Red", dt<= .1));
dt:Diff T06 << color cells("Red", dt<= .1));
dt:Diff T07 << color cells("Red", dt<= .1));
dt:Diff T08 << color cells("Red", dt<= .1));
dt:Diff T09 << color cells("Red", dt<= .1));
dt:Diff T10 << color cells("Red", dt<= .1));

Il y a eu 2 erreurs.....
1. J'ai inversé la logique de la fonction If() que j'avais spécifiée... J'avais "!=" et ça doit être "==".
2. Les références colNames dans les cellules de couleur () devaient faire référence à la colonne spécifique .... mon erreur aussi
J'ai aussi nettoyé un peu votre code ...... rien de majeur,
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 )
)
)
);
Hum... c'est bizarre. La colonne wong est mise en surbrillance. J'ai joint le script et le csv. Je reçois une erreur indiquant que la colonne "Données" doit être un type de caractère. Mais j'ai besoin qu'il soit numérique pour le calcul.
Valeurs dans les colonnes commençant par Diff*** > .1 ==Rouge
Valeurs dans les colonnes commençant par Diff*** = valeurs manquantes ==Rouge

Je pense que quelque chose comme ça fonctionnera
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 ) )
)
);