Hallo Forum!
Ich möchte Zellen in Spalten einfärben, die mit „Diff“ beginnen und einen Wert größer als .1 haben ODER einen fehlenden Wert (.) haben. Die Anzahl der Spalten, die mit „Diff“ beginnen, wächst mit dem Wachstum des Datensatzes. Hier ist, was ich bisher habe, aber auf lange Sicht wird es wahrscheinlich nicht funktionieren, da die Nummern oder Spalten wachsen.
Namen sind standardmäßig hier(1);
dt=aktuelle Datentabelle();
dt:Diff T00 << color celles("Red", dt<= .1));
dt:Diff T01 << color celles("Red", dt<= .1));
dt:Diff T02 << color celles("Red", dt<= .1));
dt:Diff T03 << color celles("Red", dt<= .1));
dt:Diff T04 << color celles("Red", dt<= .1));
dt:Diff T05 << color celles("Red", dt<= .1));
dt:Diff T06 << color celles("Red", dt<= .1));
dt:Diff T07 << color celles("Red", dt<= .1));
dt:Diff T08 << color celles("Red", dt<= .1));
dt:Diff T09 << color celles("Red", dt<= .1));
dt:Diff T10 << color celles("Red", dt<= .1));

Es gab 2 Fehler.....
1. Ich habe die Logik der If()-Funktion, die ich angegeben hatte, umgekehrt. Ich hatte „!=" und es muss „==" sein.
2. Die colNames-Referenzen in den Farbzellen() mussten auf die spezifische Spalte verweisen ... auch mein Fehler
Ich habe Ihren Code auch ein wenig aufgeräumt ... nichts Großes,
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... das ist seltsam. Die Wong-Spalte wird hervorgehoben. Ich habe das Skript und die CSV-Datei angehängt. Ich erhalte die Fehlermeldung, dass die Spalte „Daten“ ein Zeichentyp sein muss. Für die Berechnung muss es aber numerisch sein.
Werte in Spalten, die mit Diff*** > .1 ==Rot beginnen
Werte in Spalten, die mit Diff*** beginnen = fehlende Werte ==Rot

Ich denke, so etwas wird funktionieren
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 ) )
)
);