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

Tableauで男女比もわかりやすく比較できる人口ピラミッドを作ろう

Posted at

人口ピラミッドとは

image.png
人口ピラミッドは男女別に年齢ごとの人数を表したグラフのことで、中央に縦軸を引いて性別によっての年代の分布を確認することが出来、注力すべき世代を確認するのに役立ちます。
Tableauでも一工夫して作成が可能です。

Tableauにおける人口ピラミッドの課題

image.png
男女比が等しくないデータを使用してTableauで人口ピラミッドを作成すると、各性別での軸の最大値が異なったり、軸が中央にならないため上手く分析出来ない場合があります。今回はリファレンスラインを使用してこの問題を解決する方法を解説します。

##人口ピラミッド作成のおさらい

年齢が数値で入っている場合は年齢でビンを作成する。
image.png

人数の計算フィールドを作成する。男性の人数はプラス、女性の人数はマイナスになるようにする。
1レコードを1カウントとする場合は以下のように計算。

IIF([性別]="男性",1,-1)

顧客のユニーク数をカウントする場合は以下のように計算。

IIF(MAX([性別])="男性",1,-1)
*
COUNTD([顧客名])

列に先ほど作成した人数の計算フィールドを、行に先ほど作成した年齢のビンを、色に性別を配置する。
image.png

年齢のビンは降順にし、書式設定を使用して「代」などをサフィックスにつけると親切。
image.png

作成した人数の計算フィールドの書式設定をカスタムに設定し、プラスでもマイナスでも"‐"がつかないように表示するように設定

#,##0;#,##0

人口ピラミッドの完成
image.png

横軸をそろえた人口ピラミッドの作成方法

ここからが本題です。この人口ピラミッドにリファレンスラインを使用して横軸をそろえる設定をしていきます。
計算フィールドを2つ作成。
性別の各世代の最大値をWINDOW_MAXで取得し、その値が男女でどちらが大きいかを比較。大きい方を表示できるようにする。

IF WINDOW_MAX(ABS([男女人数]))>=WINDOW_MAX(ABS(-[男女人数])) THEN
WINDOW_MAX(ABS([男女人数]))/2
ELSE
WINDOW_MAX(ABS(-[男女人数]))/2
END
IF WINDOW_MAX(ABS([男女人数]))>=WINDOW_MAX(ABS(-[男女人数])) THEN
-WINDOW_MAX(ABS([男女人数]))/2
ELSE
-WINDOW_MAX(ABS(-[男女人数]))/2
END

作成した2つの計算フィールドを詳細に入れ、次を使用して計算を「性別」に設定する。
image.png

リファレンスラインを追加。値を作成した正の計算フィールドの最大値に設定し、ラベル、線を「なし」に設定する。
image.png

同様に値を作成した負の計算フィールドの最小値に設定し、ラベル、線を「なし」に設定する。
image.png

これにより、男性側も女性側の値と同じ程度の範囲が表示され、軸も真ん中で固定される。
image.png

まとめ

リファレンスラインによって軸の範囲を変更する機能はかなり便利なので活用できると良いと思います。
Tableauの仕様によりスムーズな分析が阻害されるような要素についても工夫次第では排除できることもありますので、方法がないかを試行錯誤することはかなり大事と思います。

0
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
0
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?