수식에서 열 이름을 사용하는 방법은 무엇입니까?아래와 같은 테이블이 있습니다. 모든 항목에 대해 (TA008+SA2900 ~ SA2950+SA3400 ~ SA3500+TA99)의 합계를 찾아야 합니다. jsl에서 이를 어떻게 수행할 수 있습니까?
| 안건 | SA0100 | SA0801 | SA0804 | SA0817 | SA0818 | SA0871 | SA0874 | SA2930 | SA2950 | SA2982 | SA2983 | SA2984 | SA3403 | SA3404 | SA3422 | SA3423 | SA3424 | SA3452 | SA3474 | SA3476 | SA3477 | SA3491 | SA3534 | SA9706 | SA9787 | SA9798 | SA9901 | SA9908 | TA001 | TA008 | TA029 | TA034 | TA035 | TA088 | TA097 | TA099 |
| 8A630 | 12 | | 2 | | | | | | | | | | | | | | | | | | | | | | | | | 7 | 12 | 2 | | | | | | 7 |
| 8A631 | 18 | 1 | 4 | | | 1 | | | | | | | | | | | | | | | | | | | | | | 11 | 18 | 6 | | | | | | 11 |
| 8A632 | 12 | | 1 | | 삼 | 1 | | | | | | | | | | | | | | | | | | | | | | 21 | 12 | 5 | | | | | | 21 |
| A633 | 81 | | 1 | | 2 | 2 | | | | | | | | | | | | | | | | | | | 1 | | | 13 | 81 | 5 | | | | | 1 | 13 |
| A629 | 249 | | | 1 | | 2 | | | | | | | | | | | | | | | | | | | 1 | | | 33 | 249 | 삼 | | | | | 1 | 33 |
| A626 | 380 | | | | 2 | 삼 | | | | | | | | | | | | | | | | | | | | | | 13 | 380 | 5 | | | | | | 13 |
| A600 | 11 | | 1 | | | | 1 | | | | | | | | | | | | | | | | | 1 | | | | 삼 | 11 | 2 | | | | | 1 | 삼 |
자동화 및 스크립팅데이터 혼합 및 정리대량 맞춤화Re: 수식에서 열 이름을 어떻게 사용하나요?다음은 수식을 만들기 위해 열을 처리하는 또 다른 방법입니다.
// expression way
cdt=current data table();
sum_lst2 = {};
col_lst2 = cdt << get column names( Numeric );
For( i = 1, i <= N Items( col_lst2 ), i++,
colname = Column( col_lst2[i] ) << get name;
If( Contains( {"TA008", "TA099"}, colname ) | (colname >= "SA2900" & colname <= "SA2950") | (colname >= "SA3400" & colname <= "SA3550"),
Insert Into( sum_lst2, col_lst2[i] )
);
);
Eval( Eval Expr( cdt << New Column( "Sums_expr", formula( Sum( Expr( sum_lst2 ) ) ) ) ) );Re: 수식에서 열 이름을 어떻게 사용하나요?아......그 요구 사항은 원래 질문에 명시되어 있지 않았습니다.
하지만 원하는 작업을 수행하는 코드는 반복적이지만 어렵지 않습니다.
names default to here(1);
dt=current data table();
colNames = dt << get column names(string);
sumList = "";
if(contains(colNames,"TA008"),
sumList = ":TA008";
);
For(i=2900, i<=2950, i++,
If( contains(colNames,"SA" || char(i)),
if( sumList != "", sumList = sumList || ",");
sumList = sumList || ":SA" || char(i);
)
);
For(i=3400, i<=3500, i++,
If( contains(colNames,"SA" || char(i)),
if( sumList != "", sumList = sumList || ",");
sumList = sumList || ":SA" || char(i);
)
);
if(contains(colNames,"TA099"),
if( sumList != "", sumList = sumList || ",");
sumList = sumList || ":TA099";
);
Eval(
Parse(
"dt << new column(\!"Sums\!",formula(sum( " || sumList ||
" )));"
)
);
Re: 수식에서 열 이름을 어떻게 사용하나요?데이터 세트는 동적입니다. 이름이 SA3400~SA3450이고 SA2900~SA2950인 열이 있을 수 있습니다. 이 접근 방식을 따르면 100개 이상의 열 이름을 언급해야 합니다. 단순화하는 방법을 찾으려고 합니다.
Re: 수식에서 열 이름을 어떻게 사용하나요?Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Sums",
formula(
Sum(
:SA2930,
:SA2950,
:SA3403,
:SA3404,
:SA3422,
:SA3423,
:SA3424,
:SA3452,
:SA3474,
:SA3476,
:SA3477,
:SA3491,
:TA008,
:TA099
)
)
);
위의 내용은 필요한 열의 합계가 새 열에 추가되어 데이터 테이블에 새 열을 추가합니다.
