スポンサーリンク

PythonとExcelで家計診断ツールを作ってみよう|グラフで支出が丸わかり!

Pythonアプリ開発入門

はじめに

「家計簿をつけているけど、見返すと数字ばかりでよく分からない…」
そんな経験はありませんか?

この記事では、PythonとExcelを使ってあなたの家計を「見える化」する診断ツールを作る方法をご紹介します。
グラフでパッと確認できるようになるので、「何にどれだけ使っているか」「今月は節約できたか」が一目でわかります!


🏠 この記事がぴったりな人

  • 家計管理をしているけど、もっとラクに見直したい方
  • Excelだけでは限界を感じている方
  • プログラミングに興味があって、生活に活かしたい方
  • Pythonを使って実用的なアプリを作ってみたい方

🔧 この記事でできること

  • Excelに入力した家計データをPythonで読み込む
  • 支出をカテゴリ別・月別で自動集計する
  • 棒グラフや円グラフで可視化する
  • お金の使い方を診断できるミニアプリを作る

Python初心者の方も大丈夫です!
コードは丁寧に解説しますし、サンプルのExcelテンプレートもご用意しています。
ぜひ一緒に、お金の流れを見える化して、ムダづかいを減らしていきましょう。




2. Excelに家計データを入力しよう

まずは家計診断に使うデータの土台を作りましょう。
ここでは、Excelを使って「家計簿の表」を作成します。Pythonで自動的に読み込むため、決まった形式で入力するのがポイントです。


📝 基本のシート構成

以下のようなシンプルな表を作成します。列の順番はこのままでOKです。

日付項目金額カテゴリ
2025/06/01食料品3,200食費
2025/06/02電気代5,600光熱費
2025/06/03書籍1,500教育・趣味
2025/06/03昼ごはん900食費

💡 データ入力のポイント

  • 日付は yyyy/mm/dd の形式で統一しましょう。
  • 金額は「半角数字」で入力します(カンマ付きでもOK)。
  • カテゴリは「食費」「光熱費」「交通費」など、自分で自由に決めてOKです。
  • データが多くなっても、Pythonでまとめて処理できます。

このデータができたら、次はPythonでこのExcelファイルを読み込んで、支出の分析とグラフ化をしていきますよ。
それでは、さっそく次のステップへ進みましょう!




3. PythonでExcelデータを読み込む

Excelで家計データの準備ができたら、いよいよPythonの出番です!
ここでは、ExcelファイルをPythonで読み込む手順をわかりやすく解説していきます。


🧰 使用するライブラリ

まずは以下のライブラリを使います。
pandasはデータの読み書き、openpyxlはExcelファイル操作で必要です。

pip install pandas openpyxl

📂 Excelファイルを読み込むコード

準備した家計簿(例:kakeibo.xlsx)をPythonで読み込みます。

import pandas as pd

# Excelファイルを読み込み
df = pd.read_excel("kakeibo.xlsx")

# データの先頭5行を表示
print(df.head())

これだけで、Excelの中身をPython上で操作できるようになります!
読み込んだデータが以下のように表示されれば成功です。

          日付    項目     金額       カテゴリ
0 2025-06-01 食料品 3200 食費
1 2025-06-02 電気代 5600 光熱費
2 2025-06-03 書籍 1500 教育・趣味
3 2025-06-03 昼ごはん 900 食費

💡 よくあるエラーと対処法

「ImportError: Missing optional dependency ‘openpyxl’」と出た場合
openpyxlがインストールされていない可能性があります。以下のコマンドで再インストールしてください。

pip install openpyxl --upgrade

これで、PythonからExcelの家計データを自由に扱えるようになりました!
次は、このデータをカテゴリ別に集計してグラフ化していきましょう。




4. カテゴリ別に集計・グラフ化してみよう

Pythonで家計データを読み込めたら、次はカテゴリごとの支出を集計して、グラフで可視化してみましょう。これで、「何にお金を使っているか」がひと目でわかるようになります!


📊 カテゴリ別に合計金額を集計する

pandasgroupby()を使うと、カテゴリごとの合計金額が簡単に出せます。

# カテゴリ別に金額を合計
category_sum = df.groupby("カテゴリ")["金額"].sum()

print(category_sum)

出力例:

カテゴリ
光熱費 5600
教育・趣味 1500
食費 4100

🧁 円グラフで支出割合を可視化する

次は、カテゴリごとの支出割合を円グラフにしてみましょう。

import matplotlib.pyplot as plt

# 円グラフを描画
category_sum.plot.pie(autopct="%.1f%%", startangle=90, counterclock=False)
plt.title("支出の内訳")
plt.ylabel("") # 不要なラベルを消す
plt.tight_layout()
plt.show()

これで、食費・光熱費・趣味など、どの項目にどれだけ使っているかが視覚的に分かる円グラフとして表示されます。


📊 棒グラフで比較したい場合はこちら

棒グラフで見たい方は、以下のコードを使えばOKです。

category_sum.plot.bar()
plt.title("カテゴリ別支出(棒グラフ)")
plt.xlabel("カテゴリ")
plt.ylabel("金額(円)")
plt.tight_layout()
plt.show()

💡 分析のポイント

  • 支出が多いカテゴリを把握できれば、節約ポイントが見えてきます
  • 毎月このグラフを作れば、お金の流れが継続的に見えるようになります

このように、PythonとExcelを組み合わせることで、手入力だけでは見えなかったお金の使い方が一目で把握できるようになります!

次は、月ごとの推移を分析する方法をご紹介します。支出の傾向が時系列で見えるようになりますよ!




5. 月ごとの推移を分析してみよう

カテゴリ別の支出がわかったら、次は月ごとの支出の変化を見てみましょう。月単位で比較することで、「先月より使いすぎた?」「今月は節約できた!」などの判断がしやすくなります。


📅 日付データから「月」を抽出する

まずは日付の列から年月(例:2025-06)だけを取り出す処理を行います。

# 日付をdatetime型に変換(すでにしていれば不要)
df["日付"] = pd.to_datetime(df["日付"])

# '年-月'の形式で新しい列を作成
df["月"] = df["日付"].dt.to_period("M")

📈 月ごとの支出合計を集計する

# 月ごとの金額合計を計算
monthly_sum = df.groupby("月")["金額"].sum()

print(monthly_sum)

出力例:


2025-05 42000
2025-06 37800

📊 線グラフで推移を可視化

月ごとの支出を**折れ線グラフ(ラインチャート)**にすると、増減が一目でわかります。

monthly_sum.plot(marker='o', linestyle='-')
plt.title("月ごとの支出推移")
plt.xlabel("月")
plt.ylabel("金額(円)")
plt.grid(True)
plt.tight_layout()
plt.show()

📌 分析のヒント

  • 出費が急に増えている月があれば、その原因を探ってみましょう(例:旅行、家電購入など)
  • 支出が多い月には、「どのカテゴリで増えたか?」を再度カテゴリ別に分析してみると効果的です

ここまでで、「カテゴリ別」と「月別」の両面から家計を可視化できました!
次はこのデータを活用して、Pythonで家計の診断レポートを自動で出力する方法をご紹介します!




6. 自動レポート出力で家計を見直す

これまでに作成したグラフや集計結果を、毎月のレポートとして自動出力できたら便利ですよね?
この章では、Pythonを使って**支出グラフ付きの「家計診断レポート」**を出力する方法をご紹介します。


📄 レポート形式はどうする?

今回は、誰でも扱いやすい HTMLファイルとしてレポートを出力します。
この形式なら、Webブラウザですぐに開けて、画像やグラフも埋め込み可能です。


🖼️ グラフを画像として保存しよう

まずは、グラフをPNG画像として保存します。

# カテゴリ別円グラフを保存
category_sum.plot.pie(autopct="%.1f%%", startangle=90, counterclock=False)
plt.title("支出の内訳")
plt.ylabel("")
plt.tight_layout()
plt.savefig("graph_category.png")
plt.close()

# 月別支出グラフを保存
monthly_sum.plot(marker='o', linestyle='-')
plt.title("月ごとの支出推移")
plt.xlabel("月")
plt.ylabel("金額(円)")
plt.grid(True)
plt.tight_layout()
plt.savefig("graph_monthly.png")
plt.close()

📝 HTMLファイルにグラフを埋め込もう

保存したグラフ画像をHTMLに挿入する簡単なコードです。

html_content = f"""
<html>
<head><title>家計診断レポート</title></head>
<body>
<h1>📊 家計診断レポート</h1>

<h2>■ カテゴリ別支出の内訳</h2>
<img src="graph_category.png" alt="カテゴリ別支出グラフ">

<h2>■ 月ごとの支出推移</h2>
<img src="graph_monthly.png" alt="月別支出グラフ">

<p>データ元: kakeibo.xlsx</p>
</body>
</html>
"""

# レポートをHTMLファイルとして保存
with open("kakei_report.html", "w", encoding="utf-8") as f:
f.write(html_content)

print("レポートを出力しました!")

💡 応用アイデア

  • datetime.now()を使って「今月のレポート」としてファイル名に日付を入れる
  • PDF化したい場合は pdfkitweasyprint を使って変換も可能
  • Slackやメールで自動送信すれば、完全自動化も夢じゃない!

このように、Pythonなら「データ集計 → グラフ化 → レポート出力」までワンセットで自動化できます。
作っておけば、毎月Excelにデータを追加するだけで家計をチェックできるようになりますよ!




まとめ

今回は、PythonとExcelを組み合わせて家計を診断するツールを作る方法をご紹介しました。


📌 この記事でやったこと

✅ Excelで家計データを入力しやすく整える
✅ PythonでExcelファイルを読み込む
✅ カテゴリ別・月別で支出を集計してグラフ化
✅ 見やすいレポートをHTML形式で自動出力


グラフでお金の流れを見えるようにするだけで、「この出費、ちょっと多いかも…」と気づけるようになります。
Pythonを使えば、その分析やレポート作成を毎月の習慣として自動化できるのが魅力ですね!


💡 おすすめの使い方

  • 毎月の支出チェックに
  • 家族と共有するお金のレポートとして
  • 節約目標や貯金計画のサポートに
  • Python学習の実用的な題材として

「お金の見える化」は、無理な節約ではなくムダに気づくための第一歩です。
ぜひこの記事を参考に、あなたもPython家計診断ツールを作ってみてくださいね!


あわせて読みたい|家計・データ・自動化に役立つPython活用術

Pythonを使って生活を便利にするアイデアはまだまだあります!
以下の記事もぜひチェックして、知識とスキルをさらに広げてみましょう。


💡 家計やお金の管理に関する関連記事


📈 データの可視化・分析に役立つ記事


⚙️ 自動化に関心がある方へ


よくある質問(Q&A)

Q
いいえ、大丈夫です!
A

Pythonの基本を知らなくても、記事内のコードをコピペして動かすだけで成果を実感できます。さらに、各ステップで細かく解説しているので、「見よう見まね」でも自然にPythonに慣れていけますよ。

Q
Excelファイルの形式はどんなものが使えますか?
A

.xlsx形式または.csv形式が使えます。
記事では.xlsxを使っていますが、CSVでも同じように読み込めるよう応用できます。テンプレートも用意しているので、すぐに試せます!

Q
スマホしか持っていないのですが、Pythonは使えますか?
A

一部のアプリを使えば可能ですが、本記事の内容はPC推奨です。
Pythonを使ったグラフ描画やファイル操作は、Windows/Mac/LinuxなどPC環境での作業が快適です。スマホではGoogle ColabやPyDroidなどもありますが、制限が多いためまずはPCでの体験をおすすめします。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク