ユニークなランク列を一意にランク付けするために新しい列を計算したいと考えています。 以下は、達成したい出力例です。 しかし、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 |
スクリプティングRe: ランクユニークジムとMSに感謝します。 それは見事に動作します!
Re: ランクユニーク列の数式が必要な場合は、これが機能するはずです。 ソートに依存しません。
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 ) );
Re: ランクユニークdt = current data table();
dt:Rank << delete formula;
Re: ランクユニークこんにちはジム、
アドバイスをありがとう。 #2のソリューションについて。 手動で行うのではなく、JSLを使用して式を削除するにはどうすればよいですか?Re: ランクユニークこれを行うにはいくつかの方法があります....(私が考えることができるのは、これは早朝です)
- 集計表を使用してランクを作成する
- 実行テーブル==>概要
- ラベル列でグループ化
- 出力データ テーブルが低いものから高いものへと並べ替えられていると仮定して、"Rank" という名前の新しい列を作成し、式を指定します........Row()
- Tables==>Update を実行して、サマリー テーブルを元のテーブルに結合し、Label 列で一致させます。
- 新しいランク式列を作成する
- ラベルでデータを並べ替える
- 式を使用して、Rank という名前の新しい列を作成します。
If( Row() == 1,
count = 1,
If( :Label != Lag( :Label ),
count
++)
);
count;
- 必ず列情報に移動し、列が作成された後に削除してください。これは、数式がデータの順序とデータの完全性に基づいているため、データの変更 (並べ替えなど) によって数式が再実行され、ランキングが変更される可能性があるためです。