안녕하세요 포럼입니다!
값이 .1보다 크거나 누락된 값(.)이 있는 "Diff"로 시작하는 열의 셀에 색상을 지정하고 싶습니다. "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 ) )
)
);