AnsweredAssumed Answered

ExcelにおけるRANK()関数的な処理

Question asked by d.o on Mar 2, 2009
Latest reply on Mar 3, 2009 by d.o

タイトル

ExcelにおけるRANK()関数的な処理

フォーラムに投稿

みなさんこんにちは

あるフィールドの値が現在の対象レコードの中で何番目に大きい値になるか(順位)を取得する方法を考えています。ExcelにおけるRANK()関数的な処理です。

 

今やっている方法を書いてみます。

対象レコードを順位を付けたい値のフィールドでソートします。

フィールド内容の前置換で「シリアル番号で置き換え 初期値=1 増分=1」を実行。これは「Get(レコード番号)」でもいいと思います。

ここまでで順位に近いものは出てますが同点の場合を処理しなくてはいけません。

そこで、スクリプトで先頭のレコードから順に「一つ前のレコードと同点なら順位を同じにする」という処理を最後のレコードまで繰り返して実行させます。

これで順位が取得されます。

 

この方法でひとまず出来ているのですが...もっとスマートな方法は無いかと考えています。しかも、この方法ではスクリプトを実行する必要があるのでフィールドの値を変えただけでは順位に反映されません。

皆様のお知恵をお貸し下さい。 

Outcomes