こんにちはフォーラム!
「Diff」で始まる列のセルに、.1 より大きい値または欠損値 (.) がある列のセルに色を付けたい データ セットが大きくなるにつれて、「Diff」で始まる列の数が増えます。 これは私がこれまでに持っているものですが、# または列が大きくなるため、長期的にはおそらく機能しません。
名前のデフォルトは Here(1) です。
dt=現在のデータテーブル();
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));

2箇所エラーがありました.....
1. 指定した If() 関数のロジックを逆にしました....「!=」があり、「==」にする必要があります。
2. color cells() の colNames 参照は、特定の列を参照する必要がありました....私のエラーも
また、コードを少しクリーンアップしました...大きなことは何もありません。
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 )
)
)
);
うーん...それは奇妙です。 ウォン列が強調表示されます。 スクリプトとcsvを添付しました。 列「データ」は文字型である必要があるというエラーが表示されます。 しかし、計算のために数値にする必要があります。
Diff*** > .1 ==Red で始まる列の値
Diff*** で始まる列の値 = 欠損値 == 赤

このようなものがうまくいくと思います
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 ) )
)
);