Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excelダッシュボード生成

Python Python
スポンサーリンク

Excelダッシュボード生成は「複数の集計・グラフ・指標を1画面にまとめ、意思決定を高速化する」ための最強スキル

Excel業務自動化の中でも ダッシュボード自動生成 は最も効果が大きい分野です。
なぜなら、実務では次のようなニーズが非常に多いからです。

  • 毎月の売上レポートを自動で作りたい
  • KPIを1つの画面にまとめたい
  • グラフ・集計表・指標を自動更新したい
  • 手作業でのレポート作成をゼロにしたい

Python(pandas + openpyxl)を使えば、
集計 → グラフ → レイアウト → ダッシュボード化 を完全自動化できます。

初心者でも理解しやすいように、
「基本構造 → 実務テンプレ → 応用」
の順で丁寧に解説します。


ダッシュボード生成の基本構造(最重要ポイント)

ダッシュボードは次の4ステップで作る

  1. データを集計する(pandas)
  2. グラフを作成する(openpyxl.chart)
  3. KPI(指標)をセルに書き込む
  4. レイアウトを整えて“1画面”にまとめる

この流れを理解すれば、どんなダッシュボードでも作れます。


基本:売上データからダッシュボードを作る最小コード

売上データ → 集計 → 折れ線グラフ → KPI → ダッシュボード

import pandas as pd
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference
from openpyxl.styles import Font

# 1. データ読み込み
df = pd.read_excel("sales.xlsx")

# 2. 月次売上を集計
df["月"] = df["日付"].dt.month
summary = df.groupby("月")["売上"].sum()

# 3. Excelブック作成
wb = Workbook()
ws = wb.active
ws.title = "ダッシュボード"

# KPI(合計売上)
ws["A1"].value = "合計売上"
ws["B1"].value = summary.sum()
ws["A1"].font = Font(bold=True)

# 4. 集計表を書き込み
ws["A3"].value = "月"
ws["B3"].value = "売上"
for i, (month, value) in enumerate(summary.items(), start=4):
    ws.cell(row=i, column=1, value=month)
    ws.cell(row=i, column=2, value=value)

# 5. 折れ線グラフ作成
chart = LineChart()
chart.title = "月次売上推移"

values = Reference(ws, min_col=2, min_row=4, max_row=4 + len(summary) - 1)
labels = Reference(ws, min_col=1, min_row=4, max_row=4 + len(summary) - 1)

chart.add_data(values, titles_from_data=False)
chart.set_categories(labels)

ws.add_chart(chart, "D3")

wb.save("dashboard.xlsx")
Python

深掘りポイント

  • pandas で集計 → openpyxl で可視化 が最強の組み合わせ
  • KPI(合計売上)をセルに書くことで「ダッシュボード感」が出る
  • グラフを右側に配置することで1画面にまとまる

KPI(指標)を複数表示する(ダッシュボードの必須要素)

売上合計・平均・最大値を表示

ws["A1"].value = "合計売上"
ws["B1"].value = summary.sum()

ws["A2"].value = "平均売上"
ws["B2"].value = summary.mean()

ws["A3"].value = "最大売上"
ws["B3"].value = summary.max()

for cell in ["A1", "A2", "A3"]:
    ws[cell].font = Font(bold=True)
Python

深掘りポイント

  • ダッシュボードは「数字(KPI)」が最重要
  • グラフだけではダッシュボードにならない
  • KPIを上部に並べると見やすい

棒グラフ・円グラフを組み合わせたダッシュボード

商品別売上の棒グラフ + 構成比の円グラフ

from openpyxl.chart import BarChart, PieChart

# 商品別売上集計
product_summary = df.groupby("商品")["売上"].sum()

# Excelに書き込み
ws["A10"].value = "商品"
ws["B10"].value = "売上"

for i, (product, value) in enumerate(product_summary.items(), start=11):
    ws.cell(row=i, column=1, value=product)
    ws.cell(row=i, column=2, value=value)

# 棒グラフ
bar = BarChart()
bar.title = "商品別売上"
bar_values = Reference(ws, min_col=2, min_row=11, max_row=10 + len(product_summary))
bar_labels = Reference(ws, min_col=1, min_row=11, max_row=10 + len(product_summary))
bar.add_data(bar_values, titles_from_data=False)
bar.set_categories(bar_labels)
ws.add_chart(bar, "D10")

# 円グラフ
pie = PieChart()
pie.title = "売上構成比"
pie.add_data(bar_values, titles_from_data=False)
pie.set_categories(bar_labels)
ws.add_chart(pie, "D25")
Python

深掘りポイント

  • 棒グラフ=比較
  • 円グラフ=割合
  • 2つを並べると「ダッシュボード感」が一気に増す

実務テンプレ①:売上ダッシュボード自動生成

月次売上 + 商品別売上 + KPI のフルセット

  • 上部:KPI(合計・平均・最大)
  • 左側:月次売上表
  • 右側:折れ線グラフ
  • 下部:商品別売上の棒グラフ

この構成が最も実務で使われます。


実務テンプレ②:アクセス分析ダッシュボード

  • KPI:PV、UU、直帰率
  • 折れ線:日次アクセス推移
  • 棒グラフ:デバイス別アクセス
  • 円グラフ:地域別アクセス

Pythonで自動生成すれば毎日のレポートが一瞬で完成します。


実務テンプレ③:在庫ダッシュボード

  • KPI:総在庫数、欠品数、過剰在庫数
  • 棒グラフ:商品別在庫
  • 折れ線:在庫推移
  • 表:欠品リスト

在庫管理の自動化に最適です。


Excelダッシュボード生成を業務で設計するときの視点

  • ダッシュボードは「KPI」「グラフ」「表」の3要素で構成する
  • pandas で集計 → openpyxl で可視化 が最強
  • グラフを右側に配置すると見やすい
  • KPIは上部にまとめると“ダッシュボード感”が出る
  • テンプレート化すれば毎月のレポートが完全自動化

タイトルとURLをコピーしました