1
1

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 1 year has passed since last update.

DAXメジャーを使って、集計カウントゼロ件を省略されることなく抽出できるようにする

Posted at

前提

定期的に取得するアンケートや、対象者が(ある程度)決まっているアンケートの集計にPower BI を用いると、データモデルさえ出来ていれば回答者数や回答数など簡単に集計することが出来ます。
一方で未回答の人に催促しようとした場合、未回答者の抽出や、まだ回答されていないアンケートをリストアップしようとすると、上記のように簡単にはいかないため、ひと工夫する必要があります。

名簿テーブル

ID 氏名
1 A氏
2 B氏
3 C氏
4 D氏

アンケート回答ステータス

アンケート名 回答者ID 回答日
職場改善 1 2022/1/12
職場改善 2 2022/1/23
満足度 2 2022/2/1
満足度 3 2022/2/2

データモデル
アンケート回答ステータス.ID → 名簿テーブル.ID

これを普通に可視化すると、未回答のD氏が出てこずに、こうなります。

氏名 アンケート名のカウント
A氏 1
B氏 2
C氏 1

やりたいこと

未回答者にフォローアップしたいので、ゼロ件の人も抽出されなければなりません。

氏名 アンケート名のカウント
A氏 1
B氏 2
C氏 1
D氏 0

過去一度も回答していない人の抽出
上記でいうとD氏

スライサーで設定した範囲で回答されていない人の抽出
2022/1/15 ~ 2022/2/15 で指定した場合、A氏とD氏

実装方法

Power QueryとDAXのどちらも実装出来そうですが、Slicerとの相性を考えてDAXで実装しました。
下記のメジャーを名簿テーブルに加えます(どこでもよいようです)。

回答数のメジャー
回答数 = 
VAR SumTotal =
    CALCULATE(
        COUNT('アンケート回答ステータス'[回答者ID]), 
        ALL('アンケート回答ステータス'[アンケート名])
    )
RETURN
    IF ( ISBLANK ( SumTotal ), 0, SumTotal )

回答者数というメジャーが出来るので、表なり値なりにドラッグ&ドロップすれば、未回答のD氏がリストアップされます。
アンケート名をSlicerに加えればさらにアンケート毎に未回答者を絞り出せます。
実現出来てみれば、0件をきちんと出せばよいだけなので、たいしたことないんですが、ちょいと苦労しました。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?