LoginSignup
1
1

More than 1 year has passed since last update.

Power BI Desktopが持つ「新しいクイックメジャー」機能の「フィルター」式を使いグラフ作成

Posted at

クイックメジャー「フィルターされた値」

「Power BI Desktop」が備える、計算式を使ったカスタム列(正式には「列」と呼ばないそうです)作成機能を試しました。
ひな形を使って作成できる「新しいクイックメジャー」機能で、「フィルターされた値」「フィルターされた値との差異」「フィルターされた値に対する差異の比率」を使いました。

データはNHKのサイトで提供されているオープンデータを使いました。

以下のような県別の数値が収録されています。
「Power BI Desktop」に取り込んだ直後のデータは以下のようなスタイルです。
この後、「県」をキーにフィルターします。

image.png

可視化画面右側のパネルで取り込んだフィールドを右クリックし、「新しいクイックメジャー」→「フィルターされた値」を選びます。

image.png

「基準値」に日毎の計測値、「フィルター」に「都道府県」を配置します。

image.png

「基準値」と「フィルター」を設定

「都道府県」では、今回、取り込んだデータをもとに自動的に収集された県のリストから「北海道」を選びます。

image.png

作成されたクイックメジャーフィールドをy軸、日付をx軸に設定することで、棒グラフを作成しました。
「北海道」だけの推移となります。
通常フィルタリングする場合、全県のデータを含むグラフを作成し、「フィルター」機能で県を選ぶなどします。
県を指定することになりますが、クイックメジャーで同様のことができました。

image.png

生成されたクイックメジャーの式(DAX)は以下のようになります。

北海道 の 各地の感染者数_1日ごとの発表数 = 
CALCULATE(
    SUM('nhk_news_covid19_prefectures_daily_data'[各地の感染者数_1日ごとの発表数]),
    'nhk_news_covid19_prefectures_daily_data'[都道府県名] IN { "北海道" }
)

「nhk_news_covid19_prefectures_daily_data」テーブルの「各地の感染者数_1日ごとの発表数」の合計を、次のフィルタ条件で算出、という内容になります。
フィルタ条件が「[都道府県名] IN { "北海道" }」で指定されており、見た通り都道府県名が「北海道」という設定になっています。

クイックメジャー「フィルターされた値との差異」

次に、「フィルターされた値との差異」を選びます。
「基準値」、「フィルター」は先ほど同様に日毎の計測値と「都道府県」→「北海道」を設定します。

image.png

image.png

作成したグラフです。
今回のデータの場合、都道府県全体の数値と北海道の数値との差を表しています。

image.png

生成されたクイックメジャーの式(DAX)は以下のようになります。

北海道 との 各地の感染者数_1日ごとの発表数 の差異 = 
VAR __BASELINE_VALUE =
    CALCULATE(
        SUM('nhk_news_covid19_prefectures_daily_data'[各地の感染者数_1日ごとの発表数]),
        'nhk_news_covid19_prefectures_daily_data'[都道府県名] IN { "北海道" }
    )
VAR __MEASURE_VALUE = SUM('nhk_news_covid19_prefectures_daily_data'[各地の感染者数_1日ごとの発表数])
RETURN
    __MEASURE_VALUE - __BASELINE_VALUE

「差異の比率」ではDAX式を小変更

クイックメジャー「フィルターされた値に対する差異の比率」を選びます。

image.png

image.png

生成された式は以下のようになります。
(計測値‐基準値)/基準値と、どれだけ上昇したか、下降したかを算出する式になっています。
業績の数値を解析するのに向いた式なので、今回のデータでは、「計測値/基準値」と変更します。
都道府県全体の何パーセントが北海道、という推移を表現するように変えます。

北海道 との 各地の感染者数_1日ごとの発表数 % の差異 = 
VAR __BASELINE_VALUE =
    CALCULATE(
        SUM('nhk_news_covid19_prefectures_daily_data'[各地の感染者数_1日ごとの発表数]),
        'nhk_news_covid19_prefectures_daily_data'[都道府県名] IN { "北海道" }
    )
VAR __MEASURE_VALUE = SUM('nhk_news_covid19_prefectures_daily_data'[各地の感染者数_1日ごとの発表数])
RETURN
    DIVIDE(__MEASURE_VALUE - __BASELINE_VALUE, __BASELINE_VALUE)

最後の行だけ変えて、以下のように変更(コピペ)しました。

北海道 との 各地の感染者数_1日ごとの発表数 % の差異 = 
VAR __BASELINE_VALUE =
    CALCULATE(
        SUM('nhk_news_covid19_prefectures_daily_data'[各地の感染者数_1日ごとの発表数]),
        'nhk_news_covid19_prefectures_daily_data'[都道府県名] IN { "北海道" }
    )
VAR __MEASURE_VALUE = SUM('nhk_news_covid19_prefectures_daily_data'[各地の感染者数_1日ごとの発表数])
RETURN
    DIVIDE(__BASELINE_VALUE, __MEASURE_VALUE)

上記のクイックメジャーを使ったグラフが以下になります。

image.png

これまで作った3つのグラフと、確認のために作成した「都道府県全体」と「北海道」の折れ線グラフも作成しました。

image.png

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