排名唯一我想计算一个新列以唯一地对列进行排名。 下面是我想要实现的示例输出。 但是通过使用 JSL 排名公式并不能帮助我实现我想要的。 谁能给我建议?
我使用的公式是 Col Rank(:Label)
| 标签 | 秩 | 我想要的是 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],80376,最大值 | 1 | 1 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],80376,最大值 | 2 | 1 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],80376,最大值 | 3 | 1 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],81999,最大值 | 4 | 2 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],81999,最大值 | 5 | 2 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],81999,最大值 | 6 | 2 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,最大值 | 7 | 3 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,最大值 | 8 | 3 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,最大值 | 9 | 3 |
脚本回复:排名唯一谢谢吉姆和女士。 它工作得很好!
回复:排名唯一如果你想要一个列公式,这应该可以。 独立于排序。
Local( {L = Associative Array( :Label ) << get keys}, Loc( L, :Label ) )
同样的方法可以在没有列公式的 JSL 中使用。
dt = Current Data Table();
dt << New Column( "Rank Unique", continuous );
L = Associative Array( :Label ) << get keys;
For Each Row( :Rank Unique = Loc( L, :Label ) );
回复:排名唯一dt = current data table();
dt:Rank << delete formula;
回复:排名唯一嗨,吉姆,
谢谢你的建议。 对于#2 解决方案。 如何通过使用 JSL 而不是手动删除公式?回复:排名唯一有几种方法可以做到这一点....(我能想到的,这是一大早)
- 使用汇总表创建排名
- 运行表==>总结
- 按标签列分组
- 假设输出数据表从低到高排序,创建一个名为“Rank”的新列,并给它公式........Row()
- 运行 Tables==>Update 将汇总表连接回原始表,在标签列上匹配
- 创建一个新的排名公式列
- 按标签对数据进行排序
- 使用公式创建一个名为 Rank 的新列
If( Row() == 1,
count = 1,
If( :Label != Lag( :Label ),
count
++)
);
count;
- 确保在创建列后转到列信息并删除。这样做的原因是,由于公式是基于数据的顺序和数据的完整性,数据的任何变化(排序等)都会重新运行公式并可能改变排名。