このページで扱う主要キーワード(クリックで該当セクションへ):
「Power BI」 (Microsoft Power BI) は、 SSDSE-B-2026 などの公的統計データを使った教材・分析で頻出するキーワードです。 本ページでは、 まず直感、 次に数式、 そして 47 都道府県の実値で確かめる、 という流れで体系的に整理します。 加えて、 ケーススタディ・FAQ・歴史的経緯・参考文献までを 1 ページに集約し、 用語の「地図」として使えるようにしました。
関連用語(前提・並列・発展)と関連グループ教材も末尾にまとめてあるので、 用語の地図として活用してください。
Power BI は Microsoft の BI 製品群(Desktop/Service/Mobile/Report Server)の総称です。 Tableau とよく比較されますが、 Excel と地続きであることが最大の特徴で、 Power Query と DAX という 2 つの言語を持ちます。
SSDSE のような長い表データは、 Power Query で「年度」「地域」を整形 → モデルで「都道府県マスタ」と紐付け → DAX で「高齢化率」「人口増減率」をメジャー化 → ビジュアルで配置、 という典型ルートで扱います。
Power BI の中心言語は DAX。 DAX は「フィルタコンテキスト」と「行コンテキスト」という 2 種のスコープを持ちます。
総人口 := SUM('SSDSE'[A1101])
高齢化率 := DIVIDE(SUM('SSDSE'[A1303]), SUM('SSDSE'[A1101]))
DIVIDE は 0 除算で空白を返す安全な除算。
全国平均 := CALCULATE(AVERAGE('SSDSE'[A1101]), ALL('SSDSE'[Prefecture]))
ALL でフィルタを除き、 全都道府県を母集団とする平均を取る。
これを数学的に書けば、 フィルタ集合 $F$ に対して
$$\text{メジャー}_{F}(\theta) = f\bigl(\{x_i : i \in F\};\theta\bigr)$$であり、 CALCULATE はこの $F$ を 動的に書き換える演算子と解釈できます。
| 用語 | 意味 | SSDSE での例 |
|---|---|---|
| クエリ | Power Query が生成する ETL ステップ列 | 「CSV 読込→ヘッダ昇格→型変換→不要列削除」 |
| テーブル | モデル内のリレーショナル表 | 『人口表』『都道府県マスタ』 |
| リレーションシップ | キーで紐付ける線 | 地域コードで人口表⇔マスタを結ぶ |
| 計算列 | 行コンテキストで評価される列 | 「= [総人口]−[男性人口]」 |
| メジャー | フィルタコンテキストで評価される集計 | 「= SUM([総人口])」 |
| 時間インテリジェンス | 年度・YTD・PY を扱う DAX 群 | TOTALYTD / SAMEPERIODLASTYEAR |
| RLS | 行レベルセキュリティ。 役割でフィルタ | 「東京担当者は東京の行のみ閲覧可」 |
| DirectQuery | クエリを毎回 DB に発行 | 大規模 DWH 直結に向く |
| Import | VertiPaq に列圧縮で取込 | SSDSE 程度なら最速 |
典型的な構成は次の通り。
data/raw/SSDSE-B-2026.csv を読み込み、 ヘッダを昇格 → 数値列を整数型に変換 → 不要な英文ヘッダ行を削除。高齢化率 = [65歳以上人口] / [総人口] を行ごとに計算。全国合計 := SUM(SSDSE[総人口])、 東京シェア := DIVIDE(CALCULATE([全国合計], SSDSE[都道府県]="東京都"), [全国合計])計算結果の目安:
import pandas as pd
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='shift_jis')
df.columns = df.iloc[0]
df = df.iloc[1:].reset_index(drop=True)
for c in ['総人口', '15歳未満人口', '15〜64歳人口', '65歳以上人口']:
df[c] = df[c].astype(int)
df['年度'] = df['年度'].astype(int)
df['高齢化率'] = df['65歳以上人口'] / df['総人口']
df.to_parquet('processed/ssdse-b-2026.parquet', index=False)
print('rows:', len(df))
long = df.melt(id_vars=['年度','地域コード','都道府県'],
value_vars=['総人口','15歳未満人口','15〜64歳人口','65歳以上人口'],
var_name='指標', value_name='人数')
long.to_csv('processed/ssdse-b-long.csv', index=False, encoding='utf-8-sig')
print(long.head(8))
# Power BI Desktop の「Python ビジュアル」セルに貼る
import pandas as pd
import matplotlib.pyplot as plt
# dataset は Power BI が自動注入する DataFrame
df = dataset.copy()
df = df.sort_values('総人口', ascending=False).head(10)
plt.figure(figsize=(8,4))
plt.bar(df['都道府県'], df['総人口'])
plt.xticks(rotation=30)
plt.title('人口上位 10 都道府県')
plt.tight_layout()
plt.show()
高齢化率ランク :=
RANKX(
ALL('SSDSE'[都道府県]),
[高齢化率],
, DESC, Dense
)
// Power Query M 言語
let
Source = Csv.Document(File.Contents("C:\data\SSDSE-B-2026.csv"),
[Delimiter=",", Encoding=932]), // Shift_JIS
PromotedHeaders = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
RemovedTopRow = Table.Skip(PromotedHeaders, 1),
TypedTable = Table.TransformColumnTypes(RemovedTopRow, {
{"年度", Int64.Type},
{"総人口", Int64.Type},
{"65歳以上人口", Int64.Type},
{"県内総生産", Int64.Type}
})
in TypedTable
高齢化率 := DIVIDE(SUM('SSDSE'[65歳以上人口]), SUM('SSDSE'[総人口]))
前年高齢化率 :=
CALCULATE([高齢化率], DATEADD('SSDSE'[年度], -1, YEAR))
高齢化率の前年差 := [高齢化率] - [前年高齢化率]
都道府県 列SUM(総人口)[高齢化率] メジャーimport matplotlib.pyplot as plt
df = dataset
top = df.sort_values('総人口', ascending=False).head(10)
plt.figure(figsize=(8, 4))
plt.barh(top['都道府県'][::-1], top['総人口'][::-1])
plt.title('総人口 上位10県(2023年)')
plt.tight_layout()
plt.show()
[都道府県] = "東京都"ステップ 1:データ取り込み
Power BI Desktop 起動 → ホーム → データを取得 → テキスト/CSV → SSDSE-B-2026.csv、 文字コードに「日本語 (Shift-JIS) - 932」を指定。
ステップ 2:Power Query で整形
// 最初の行(英文ヘッダ)を削除
= Table.Skip(Source, 1)
// ヘッダ昇格
= Table.PromoteHeaders(#"Removed Top Rows")
// 型変換
= Table.TransformColumnTypes(#"Promoted Headers", {
{"年度", Int64.Type},
{"総人口", Int64.Type},
{"65歳以上人口", Int64.Type}
})
ステップ 3:データ列カテゴリ設定
モデリング → データカテゴリ → 「都道府県」 を選ぶ。 マップビジュアルが正しく地点を認識する。
ステップ 4:DAX メジャーを作成
高齢化率 = DIVIDE(SUM('SSDSE'[65歳以上人口]), SUM('SSDSE'[総人口]))
人口 YoY = [総人口] - CALCULATE([総人口], DATEADD('SSDSE'[年度], -1, YEAR))
ステップ 5:ビジュアル配置
ステップ 6:レポート共有
Power BI Service へ発行(Pro ライセンス必要)、 ワークスペース内で共有、 自動更新設定。
売上・利益・在庫・予算の月次/週次/日次更新。 Power BI Service の自動更新と Teams 配信。
SSDSE-B-2026 を読み込み、 都道府県別人口・経済・社会指標をマップ化。 Power BI Embedded で市民向けに公開も可。
科目別成績、 不登校推移、 進路追跡。 文部科学省統計と SSDSE を結合してベンチマーク。
病床稼働率、 救急搬送、 在宅医療件数。 RLS で病院ごとアクセス分離。
製造ラインの稼働率、 不良率、 OEE。 IoT センサーから Synapse 経由で取り込み。
採用ファネル、 給与分布、 離職予測(Azure ML 連携)。
キャンペーン ROI、 チャネル別売上、 顧客 LTV。 Google Analytics、 CRM、 ERP を統合。
研究費獲得状況、 論文出版、 学生統計。 経年比較ダッシュボード化。
| プラン | 料金 | 用途 |
|---|---|---|
| Free / Desktop | 無料 | 個人作業、 学習 |
| Pro | 10 USD / user / 月 | 組織内共有、 自動更新 |
| Premium Per User | 20 USD / user / 月 | 大容量、 AI 機能 |
| Premium Capacity | 4,995 USD / 月~ | 全社配信、 Embedded |
| Fabric F SKU | 応相談 | OneLake + Power BI 統合 |
| 用語 | 意味 |
|---|---|
| DAX | Data Analysis Expressions。 集計の式言語 |
| M 言語 | Power Query の式言語 |
| 計算列 | 行コンテキストで毎行計算する列 |
| メジャー | フィルタコンテキストで集計する式 |
| リレーションシップ | テーブル間の結合関係 |
| スタースキーマ | 中心ファクト + 周辺ディメンション |
| RLS | 行レベルセキュリティ |
| VertiPaq | 列指向圧縮エンジン |
| DirectQuery | クエリ時に DB へ直接問い合わせ |
| Import | データを取り込んでローカル保持 |
| CALCULATE | フィルタコンテキストを変更する DAX 関数 |
| Time Intelligence | 時間軸の DAX 関数群 |
| レシピ | コード |
|---|---|
| Power Query: 型変換 | = Table.TransformColumnTypes(Source, {{"年度", Int64.Type}}) |
| Power Query: フィルタ | = Table.SelectRows(Source, each [年度] = 2023) |
| Power Query: 列追加 | = Table.AddColumn(Source, "高齢化率", each [65歳以上人口]/[総人口]) |
| DAX: 合計 | 総人口 := SUM('SSDSE'[総人口]) |
| DAX: 平均 | 平均人口 := AVERAGE('SSDSE'[総人口]) |
| DAX: 比率 | 高齢化率 := DIVIDE(SUM('SSDSE'[65歳以上人口]), SUM('SSDSE'[総人口])) |
| DAX: CALCULATE | 東京シェア := CALCULATE([総人口], 'SSDSE'[都道府県]="東京都") / [総人口] |
| DAX: フィルタ削除 | 全国平均 := CALCULATE(AVERAGE('SSDSE'[総人口]), ALL('SSDSE'[都道府県])) |
| DAX: 前年 | 前年人口 := CALCULATE([総人口], DATEADD('SSDSE'[年度], -1, YEAR)) |
| DAX: ランク | 人口ランク := RANKX(ALL('SSDSE'[都道府県]), [総人口],, DESC) |
| メジャーをカードに | ビジュアル「カード」を追加 → メジャーをドラッグ |
| Time Intelligence: YTD | YTD人口 := TOTALYTD([総人口], 'SSDSE'[年度]) |
| RLS フィルタ | [都道府県] = USERNAME() |
| Python ビジュアル | dataset = pd.DataFrame(...) を受け取って matplotlib |
| R ビジュアル | ggplot2 で同様の処理が可 |
歴史と位置づけ:Power BI は Microsoft が 2015 年に正式リリースした BI 製品。 ルーツは Excel の「PowerPivot」(2010)と「Power View」(2013)にあります。 これらを単独の製品として独立させ、 Power Query/Power Pivot/Power View/Power Map/Power Q&A を統合したものが Power BI。
製品ファミリー:
言語:
Power BI のレイヤー構造:
[表示] ビジュアル(棒/線/散布/マップ/Python ビジュアル)
↑
[計算] DAX メジャー / 計算列 / 時間インテリジェンス
↑
[モデル] テーブル + リレーションシップ + 階層 + RLS
↑
[取込] Power Query(M 言語:取り込み・整形)
↑
[データ] CSV / Excel / SQL / Web API / SSDSE-B-2026.csv