2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PowerBIの上位Nフィルタで絞った順位と表示したテーブル順位がずれる

Posted at

名称未設定-1.png

番組名と番組開始時刻ごとの視聴率を表示するテーブルを作成しました。
視聴率で降順ソートかけて、視聴率が高い順に番組を表示しようと。
ただ、番組全部表示するとあまりにも多いので、番組名に「上位Nフィルタ」をかけて、8件だけ表示するようにしていました。

しかし、問題発覚。
上位8件だけ表示していたのを、30件表示しようとしてみたら、それまで8位以内に表示されていなかった番組が、急に2位に出てきたんです。

結論から言うと、単純なミスでした。

複数カラムのテーブルは上位Nフィルタかけないほうが無難

ただし、すべてのカラムがユニークでない場合は、です。
image.png

上位Nフィルタってこんな感じでかけますよね。
例えば「番組名」というデータに対して、「平均視聴率」の上位N個を表示するように指定します。
しかし一方で、テーブルに表示されているのは「番組名」「視聴率」に加えて、「番組開始時刻」もあります。
ここで問題になるのが、番組名がユニークでない場合、つまり同じ番組の再放送があったりすると、表の中ではそれぞれ別の行として表示するんです。
つまり、テーブルの中に表示されるのは、放送時刻と番組名がバラバラなデータなのに対して、フィルタでは放送時刻を無視した、全ての再放送を含めた平均視聴率で計算されてしまいます。

例えば、上位8位のフィルタをかけているとき、8位の番組の番組平均視聴率が10%だったとします。
ある番組Aは、10回再放送されており、1回だけ30%の視聴率を取った回がありましたが、10回の平均を見ると9%です。
この番組Aは平均視聴率が9%なので、上位8フィルタの時点ではじかれてしまっています。
しかし、上位Nの数を30に設定したら、表示されるようになりました。
表示されるようになったものの、表示されるときは番組丸ごとではなく、放送時刻が違う回ごとで表示されるので、30%という視聴率を取った回が1位に躍り出ました。

というような感じです。

結論、ユニークではない複数カラムのテーブルをつくってソートするとき、上位Nフィルタは使わないほうが無難だなと思いました。
上位だけ表示させたい動機ってそんなに強くないですし。

ちゃんと放送時刻×番組名での上位Nを表示させたかったら、放送時刻×番組名での平均視聴率を算出するメジャーを作ってやるべきですかね。
ともかく、フィルタの集計に使うデータと表示されるデータを一致させておかないと怖いなと思いました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?