PowerBI Desktopスモールマルチプルの使い道

# 各カテゴリ同様の減少傾向に使う
「PowerBI Desktop」のスモールマルチプル機能は、カテゴリごとに（小さい）グラフを並べる機能です。
各グラフの軸の大きさが同一ということもあり、各カテゴリとも同程度の大きさを持つ数字群のグラフ向きです。
このためあまり使ってなかったのですが、「最大値でなく同様の増減率推移を比較できる」だろうと思い、「最近の新型コロナの陽性者数の世界的減少傾向」を見るのに使えると考えました。

使ったデータはWHO（世界保健機関：World Health Organization）の「COVID-19 Dashboard」。PowerBI Desktopにインポートしました。

https://covid19.who.int/

準備として、WHOがが使用しているエリアの略称
**「AFRO」「AMRO」「SEARO」「EURO」「EMRO」「WPRO」**
を正式名称に戻しました。
カスタム列を追加し、以下の式を設定しました。
「CONTAINSSTRING」はDAX関数で、検索した文字列が含まれればTRUEを返します。

~~~
REN_WHO_region = IF(
CONTAINSSTRING([WHO_region],"AFRO"),"African Region",
IF(
CONTAINSSTRING([WHO_region],"AMRO"),"Region of the Americas",
IF(
CONTAINSSTRING([WHO_region],"SEARO"),"South-East Asia Region",
IF(
CONTAINSSTRING([WHO_region],"EURO"),"European Region",
IF(
CONTAINSSTRING([WHO_region],"EMRO"),"Eastern Mediterranean Region",
IF(
CONTAINSSTRING([WHO_region],"WPRO"),"Western Pacific Region",
"Others"
))))))
~~~

# 実数のスモールマルチプル

まず、増減率でなくインポートした数値をそのまま使ってみます。
スモールマルチプル用のカテゴリに、このカスタム列「REN_WHO_region」を使います。

<img width="300" alt="qiita-square" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/aa115805-ee82-4169-7748-7efa3c2f138f.png">

横2×縦3のレイアウトにします。

<img width="300" alt="qiita-square" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/20e9bb16-73a3-bdb2-a3a4-e9fb5e27357e.png">

フィルターで「2022年」、（x軸の）階層の指定で「月ごとの集計」としました。
エリアごとの集計地に差があるので、最大値が小さい区域のグラフは変化がわかりません。
※この時点の表示対象は1月～5月。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/6451a279-efbb-f5d5-6494-d7dbd40e0055.png)

# 増減率のスモールマルチプル1

「クイックメジャー」（フィールド付近を左クリックして選択）を利用し、「月ごとの変化」の計算式を指定しました。

<img width="500" alt="qiita-square" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/cf786429-8463-0aa1-abf9-7db27cb6d705.png">

生成された計算式は、「DATEADD」関数で前月の数値を呼び出し、当月の増加率を出す、というものです。

~~~
New_cases MoM% = 
IF(
	ISFILTERED('calender'[Date]),
	ERROR("タイム インテリジェンスのクイック メジャーは、Power BI が指定する日付階層またはプライマリの日付列でのみグループ化またはフィルターできます。"),
	VAR __PREV_MONTH =
		CALCULATE(
			SUM('WHO-COVID-19-global-data'[New_cases]),
			DATEADD('calender'[Date].[Date], -1, MONTH)
		)
	RETURN
		DIVIDE(
			SUM('WHO-COVID-19-global-data'[New_cases]) - __PREV_MONTH,
			__PREV_MONTH
		)
)
~~~

その計算式列をY軸値として設定し、スモールマルチプルを使います。
前年12月から翌年1月では、大きく増加しているエリアがあることがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/a0d66a1c-d137-0b87-c21a-31b874330cd2.png)

最近の減少傾向、およびその傾向にエリアで変化があるかを確認する、という前提に切り替え、1月の表示を外すことにしました。

# 増減率のスモールマルチプル2
エリアごとの比較をしやすくなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/5de9fe5d-8bcf-c607-93a2-d1771d9b4961.png)

5月を比べると、「Affrica Region」と「Region of the Americas」が前月より増加しています。
処理の仕方が間違ってないかを確認するために、実数の期間を長くとり、棒グラフで推移をチェックしました。
「Affrica Region」と「Region of the Americas」ともに5月は前月より増加しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/827894e4-9b61-e776-c317-01290f534e34.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/8aace5a6-7725-a6b8-1dd8-4f483dcb4f23.png)

# ついでにドリルスルー
スモールマルチプルの使用はここで区切りがついたのですが、棒グラフへもう少しスムーズに移るために「ドリルスルー」を使ってみました。
ついでにそのメモを残しておきます。

まず、エリアごとの棒グラフ（ひと月の区間にエリア分のグラフが並んでいます）の右下の「ドリルスルー」にエリア列を示す「REN_WHO_region」を配置します。
このグラフのタブ名称を「地域別（陽性者数）の複製」としました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/4bcc574d-52b9-d992-95c6-0a36b79e2bd4.png)

スモールマルチプルのグラフ上に同期間のテーブル（表）を参照用として用意しました。
スモールマルチプルで気になったエリアをテーブル上で右クリックし、「ドリスルー」→「地域別（陽性者数）の複製」と選ぶと、エリアごとの棒グラフに切り替わります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/00309dec-ceaa-8e1c-7fe9-7c8976fd118c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/c9c0e378-edfa-43ec-804d-38e23f71033c.png)

ちなみに、ドリルスルーの遷移先のグラフが引き継いだ表示条件は、ドリルスルーの設定部分で確認できます。

<img width="300" alt="qiita-square" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/d47bb5c7-6e25-df1b-0bc9-8a5210b78dce.png">

**了**