こんにちは、JSL 初心者です。 以下の形式のデータテーブルがあります。 列は、BIN、TOF (エラーの有無)、RWED (溶接のやり直し)、および MP (組み立て) です。最終結果は出力されず、ステップ 1 (後述) の後に終了します。どうすれば修正できますか?
| 置き場 | TOF | RWED | MP |
| 1001 | Y | 1 | 31A |
| 1001 | N | | 31A |
| 1001 | N | | 31A |
| 1001 | Y | 1 | 31A |
| 1002 | N | | 31A |
| 1002 | N | | 31B |
| 1002 | N | | 31B |
| 1002 | Y | 1 | 31B |
| 1003 | Y | 1 | 31A |
| 1003 | Y | 1 | 31B |
私が望む最終結果を達成するために次の手順を実行しようとしています。これは、そのBIN内の総数または組み立てられたユニットのパーセンテージによるRWEDです。
ステップ 1: 要約テーブルを作成する
| 置き場 | N 行 | MP | 合計(RWED) |
| 1001 | 4 | 31A | 2 |
| 1002 | 1 | 31A | 0 |
| 1002 | 3 | 31B | 1 |
| 1003 | 1 | 31A | 1 |
| 1003 | 1 | 31B | 1 |
ステップ 2: サマリー テーブルの名前を「Sum(RWED)」から「TRWED」に変更し、式「RWRat」の列を追加して、BIN と MP による総ユニット数による再溶接率を計算します。
| 置き場 | N 行 | MP | トゥウェド | RWRat |
| 1001 | 4 | 31A | 2 | 50 |
| 1002 | 1 | 31A | 0 | 0 |
| 1002 | 3 | 31B | 1 | 33.33 |
| 1003 | 1 | 31A | 1 | 100 |
| 1003 | 1 | 31B | 1 | 100 |
ステップ 3: テーブルを最終出力に転置し、テーブルを保存します
| 置き場 | 31A | 31B |
| 1001 | 50 | 0 |
| 1002 | 0 | 33.33 |
| 1003 | 100 | 100 |
次のスクリプトを実行しました
dt1 = Open( "smdt.csv" ); //Open the data table
Wait( 2 );
//Summary table creation
dt2 << Summary( Group( :BIN, :MP ), Sum( :RWED ), Freq( "None" ), Weight( "None" ), );
Column( dt2, "sum(:RWED)" ) << set name( "TRWED" );//renaming the summary table column
dt2 << New Column( "RWRat", Numeric, Continuous, Formula( Round( (:Name( "TRWED)" ) / :N Rows) * 100, 2 ) ) );//add new column to with formula
//Transpose the final results
Transpose( columns( :Name( "Sum(RWED)" ) ), By( :BIN ), Label( :MP ), Output Table( "RWRT By (BIN, MP)" ) );
dt2 << Save( "Stb.csv" );//Save the table
@txnelson速やかなご返信ありがとうございます。
RWRat 列を作成した後、計算された値が列に追加されていないことがわかります。 「N行」列だからでしょうか? 集計表を作成すると「N行」列が作成されます。 数式で再利用したい場合、その列の名前を変更する必要がありますか?
最終出力テーブルの形式は正しいのですが、テーブルの値が空白になります。
また、TXN_WW==BIN です。 それは私の間違いでした。
names default to here(1);
dt1 = New Table( "Example",
Add Rows( 10 ),
New Script(
"Source",
Data Table( "Untitled 31" ) << Split(
Split By( :Column 2 ),
Split( :Column 1 ),
Sort by Column Property
)
),
New Column( "Bin",
Character,
"Nominal",
Set Values(
{"1001", "1001", "1001", "1001", "1002", "1002", "1002", "1002", "1003",
"1003"}
)
),
New Column( "TOF",
Character,
"Nominal",
Set Values( {"Y", "N", "N", "Y", "N", "N", "N", "Y", "Y", "Y"} )
),
New Column( "RWED",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [1, ., ., 1, ., ., ., 1, 1, 1] )
),
New Column( "MP",
Character,
"Nominal",
Set Values(
{"31A", "31A", "31A", "31A", "31A", "31B", "31B", "31B", "31A", "31B"}
)
)
);
dt2 = dt1 << Summary(
Group( :Bin, :MP ),
Sum( :RWED ),
Freq( "None" ),
Weight( "None" )
);
dt2:Name("Sum(RWED)") << set name( "TRWED" );
dt2 << NewColumn("RWRat", Numeric, Continuous, Formula(Round(:TRWED / :N Rows* 100, 2) ));
dt3 = dt2 << Transpose(
columns( :RWRat ),
By( :Bin ),
Label( :MP ),
Output Table( "\!"RWRT By (TXN_WW, MP" )
);