抽出結果に順位
RANK関数で順位をつけた表をフィルタで抽出しても、表示された結果にきちんと順位がつくようにする方法を紹介します。
2013Excel関数技BEST 51回
フィルタで抽出しても、抽出結果に順位がつくようにしたい
RANK関数で順位をつけた表がありますが、その表にフィルタで抽出をかけると、順位がとびとびになり崩れてしまいます。
これは、RANK関数が非表示の行でも機能しているため、フィルタをかけて表示された結果で、順位がとびとびになったように見えるからです。
フィルタで抽出しても常に表示された結果にきちんと順位がつくようにするにはどうしたらよいでしょう。
今回は、IF関数とSUBTOTAL関数の式を作業列に作成し、その値を元にRANK関数で順位をつけることにします。
(サンプルファイルは、こちらから 2013関数技51回サンプルデータ)
フィルタで抽出すると順位が崩れてしまう
店舗別売上表には、RANK関数で順位をつけています。D2セルには以下の式が入っています。
=RANK.EQ(C2,$C$2:$C$13,0)
フィルタで抽出すると、抽出前のランクで表示されます。
これをきちんと、1,2,3,4のように表示したいわけです。
これをきちんと、1,2,3,4のように表示したいわけです。
フィルタで抽出しても、結果に順位をつけるには
ここでは、SUBTOTAL 関数を使います。
SUBTOTAL 関数では、集計方法の値にかかわらず、フィルターの結果に含まれていない行はすべて無視されます。
SUBTOTALを利用すれば、非表示行をスキップできるのです。
SUBTOTAL 関数では、集計方法の値にかかわらず、フィルターの結果に含まれていない行はすべて無視されます。
SUBTOTALを利用すれば、非表示行をスキップできるのです。
引数の1は平均、2は数値の個数、3は、データの個数です。
作業列をつくります。サンプルでは順位の隣のE列を使います。
関数の挿入ボタン、あるいは数式タブの論理からIF関数を選択します。
論理式にSUBTOTAL(2,C2)と入力します。真の場合には、C2セル、偽の場合には””とします。以上で、OKをクリック。
関数の挿入ボタン、あるいは数式タブの論理からIF関数を選択します。
論理式にSUBTOTAL(2,C2)と入力します。真の場合には、C2セル、偽の場合には””とします。以上で、OKをクリック。
次のページで、順位のセルに式を入力して完成させましょう。