Power BI DAXの使い方(実践編12本 ) 日本の総人口データを計算
こんにちは。
下図は政府統計(日本人人口データ)のデータを加工して作った、1950年~2020年までの日本の人口推移データです。
●シート名:Population_加工
●今回利用する列:
・年次
・年次(exceptyear)※「年次」列の末尾の「年」の文字を除去
・総人口
※その他の列は別の分析レポート用に入れているので無視下さい。
そして今回はこちらのデータを使って、様々なDAX計算式を書いていこうと思います。
DAXのお勉強用に使ってみて下さい。
それでは、よーーーい、ドン。
※You Tubeに動画版もあるので、よろしければこちらも一緒にご覧くださいませ。
Contents
1.最大値を求める(人口)
MAX関数を使って、総人口列の中で最大値を求めていきます。
人口最大 =MAX(‘Population_加工'[総人口])
2.最大値を求める(年)
1.で人口の最大値を求めましたが、問題は「それが何年か」ということです。
そこで下記のようにDAX関数を書いてみました。
人口最大(年) =CALCULATE(MAX(‘Population_加工'[年次(exceptyear)]),FILTER(‘Population_加工’, ‘Population_加工'[総人口]=MAX(‘Population_加工'[総人口])))
3.最大値を求める(単位付)
1.で求めた人口の最大値ですが、さすがに1億2805万という値を単位無しで表示するとなると、数えずらいです。
人は、もっとスパッと感覚的に知りたいんです(←誰)。
そこで、この値に「億」の単位を付けて表示していこうと思います。
人口(億人単位付) =VAR Population =TRUNC(DIVIDE(‘Measure'[人口最大], 100000000,0),3)ReturnPopulation & “億人”
Divide関数で人口を1億で割り、Trunc関数でその結果を小数点を2桁まで表示するよう除去し、それをVAR関数に入れて、Returnで結果に「億人」の単位を付けています…
※なんだかちょっと暗号チックになってきましたが、安心してください。これが一番難しいです
4.最小値を求める
続いて、人口の最小値を求めていきます。
MIN関数で最小の値を返します。
人口最小 =MIN(‘Population_加工'[総人口])
1950年以降、日本の人口は8,411万4,574が最小だったとのことです。
5.最小値を求める(年)
4.で求めた人口の最小値ですが、問題はここでも「それが何年か」ということです。
そこで先程の最大値(年)を求めた関数を流用して作ってみました。
FILTER(‘Population_加工’, ‘Population_加工'[総人口]=MIN(‘Population_加工'[総人口])))
変わったのは、MAX→MINになっただけです。
ということで、日本の人口は1950年が最小だったとのことです。
6.直近の人口を求める
続いて、最も直近の年(2020年)の人口を求めたいと思います。
そう、人々が知りたいのは、「今」現状どうなっているかなのです。(←誰 再掲)
人口直近 =CALCULATE(MAX(‘Population_加工'[総人口]),FILTER(‘Population_加工’, ‘Population_加工'[年次(exceptyear)]=MAX(‘Population_加工'[年次(exceptyear)])))
ここでも安定のCalculate関数を使っています。
そしてFilter関数で、年次が最も最大となるよう(つまり2020年になるよう)に絞り込んでいます。
7.昨年の人口を求める
続きまして、昨年の人口を求めていきたいと思います。
人はいつでも、「昨対比でどうなったのか」知りたいものです。
ということで、少しサボったバージョンの関数がこちら。
人口昨年 =CALCULATE(MAX(‘Population_加工'[総人口]),FILTER(‘Population_加工’, ‘Population_加工'[年次(exceptyear)]=MAX(‘Population_加工'[年次(exceptyear)])-1))
直近の人口のCalculate関数のFilterの年次に「-1」を加えることで、直近の年次から1年遡ったデータに絞り込んでいます。
そして、ちょっと真面目にやったバージョンがこちら。
人口昨年2 =CALCULATE([人口直近], SAMEPERIODLASTYEAR(‘Population_加工'[年次]))
SAMEPERIODLASTYEAR関数を利用することで、昨年のみの結果を表示することが可能なのです。
8.昨対比の増減率を求める
昨年の人口が数値として分かったら、次は「昨対比の増減率」がどうかという点です。
人はいつでも、%(パーセント)で知りたがるものです(そろそろ、うざい…)。
昨年比 =DIVIDE(‘Measure'[人口直近], ‘Measure'[人口昨年],0)-1
9.平均を求める
やはり何事もベンチマークとなるのが、「平均」でしょう。
Average関数を使えば一発で平均値が計算できます。
人口平均 =AVERAGE(‘Population_加工'[総人口])
10.平均を求める(期間指定)
平均は大事ですが、期間を指定して平均を出したいケースもあるでしょう。
例えば令和以降の平均とか、平成以降の平均とか。
ということで、期間を指定して平均を求めるDAX関数がこちら。
人口平均(直近10年間) =CALCULATE(AVERAGE(‘Population_加工'[総人口]),DATESINPERIOD(‘Population_加工'[年次], MAX(‘Population_加工'[年次]), -10, YEAR))
11.中央値を求める
統計指標の中で平均と合わせて知りたいのが、そう中央値でしょう。
ということで、下記が中央値を求めるDAX関数です。MEDIANという関数を使っています。
人口中央値 =MEDIAN(‘Population_加工'[総人口])
以上、人口データ×DAX編でした。
※You Tubeにこちらの動画版あります!
コメントを残す