你好,世界,JSL 新手。 我有一个以下格式的数据表。 列有BIN、TOF(是否有错误)、RWED(重新焊接)和MP(组装者)。它不输出最终结果并在步骤 1(如下所述)之后结束。我该如何修复它?
| 垃圾桶 | 到F | RWED | 国会议员 |
| 1001 | 是 | 1 | 31A |
| 1001 | 氮 | | 31A |
| 1001 | 氮 | | 31A |
| 1001 | 是 | 1 | 31A |
| 1002 | 氮 | | 31A |
| 1002 | 氮 | | 31B |
| 1002 | 氮 | | 31B |
| 1002 | 是 | 1 | 31B |
| 1003 | 是 | 1 | 31A |
| 1003 | 是 | 1 | 31B |
我正在尝试按照以下步骤来实现我想要的最终结果,即 RWED 按该 BIN 中总数或组装单元的百分比。
第一步:创建汇总表
| 垃圾桶 | N 行 | 国会议员 | 总和(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”的列,以按单位总数计算重焊率 weds by BIN by MP
| 垃圾桶 | N 行 | 国会议员 | TRWED | 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
@tx尼尔森谢谢你的快速反应。
创建 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" )
);