Excelで家計を自動化する方法【VBAとPythonを使った月次集計の仕組み】

Excelで家計を自動化する方法【VBAとPythonを使った月次集計の仕組み】 節約・生活

はじめに

家計簿アプリも便利ですが、エンジニアならPythonで家計を自動化できます。Pythonを使った月次集計の自動化で、毎月30分かかっていた家計集計が5分以内に短縮できます。実装手順を解説します。

システムの全体像

銀行・クレジットカードのCSV明細をダウンロードし、Pythonでデータを正規化(日付・金額・カテゴリ分類)して、月次集計をExcelシートに出力するという流れです。各金融機関のCSV形式は異なりますが、pandasで一度変換ルールを作れば毎月自動で処理できます。最終的にはExcelのダッシュボードで月次収支・カテゴリ別支出・前月比を一目で確認できる状態を目指します。

Pythonによるデータ正規化コード

import pandas as pd
from pathlib import Path

def normalize_csv(file_path: str, bank_type: str) -> pd.DataFrame:
    """銀行ごとのCSVを統一フォーマットに変換"""
    df = pd.read_csv(file_path, encoding='shift-jis')
    
    if bank_type == 'rakuten':
        df = df.rename(columns={
            '取引日': 'date', '入出金(円)': 'amount', '摘要': 'description'
        })
    elif bank_type == 'sony':
        df = df.rename(columns={
            '取引年月日': 'date', '取引金額': 'amount', '摘要': 'description'
        })
    
    df['date'] = pd.to_datetime(df['date'])
    return df[['date', 'amount', 'description']]

def categorize(description: str) -> str:
    """支出をカテゴリに分類"""
    rules = {
        '食費': ['スーパー', 'コンビニ', 'マクドナルド'],
        '交通費': ['Suica', 'JR', '電車'],
        '光熱費': ['東京電力', 'ガス', '東京ガス'],
    }
    for category, keywords in rules.items():
        if any(k in description for k in keywords):
            return category
    return 'その他'

月次集計とExcel出力

import openpyxl

def create_monthly_report(df: pd.DataFrame, year: int, month: int):
    """月次集計レポートをExcelに出力"""
    monthly = df[
        (df['date'].dt.year == year) & 
        (df['date'].dt.month == month)
    ].copy()
    
    monthly['category'] = monthly['description'].apply(categorize)
    summary = monthly.groupby('category')['amount'].sum()
    
    # Excelに書き出し
    with pd.ExcelWriter(f'household_{year}{month:02d}.xlsx') as writer:
        monthly.to_excel(writer, sheet_name='明細', index=False)
        summary.to_excel(writer, sheet_name='集計')
    
    print(f"{year}年{month}月の集計完了")
    return summary

副業への活用

この自動化スクリプトは「Excelの家計簿集計を自動化してほしい」という副業案件として受注できます。cococo(ococonala)やクラウドワークスで「家計管理自動化・Excel集計自動化」として出品すると需要があります。1件3〜10万円の単価が狙えます。クライアントの銀行CSV形式に合わせてカスタマイズするだけで納品できるため、一度テンプレートを作れば効率的に複数案件を受注できます。

よくある質問

「銀行のCSVはどうダウンロードしますか」という質問をよく受けます。各銀行のインターネットバンキングの取引明細画面からCSVまたはExcel形式でダウンロードできます。クレジットカードも同様に会員ページから明細CSVをダウンロードできます。「マネーフォワードと自作どちらが良いですか」という質問については、日常使いはマネーフォワード(自動連携が楽)、カスタマイズや学習目的には自作スクリプトという使い分けをおすすめします。

まとめ

PythonとExcelを使った家計自動化は、毎月の集計時間を大幅に短縮するエンジニアらしい節約方法です。一度仕組みを作れば毎月自動で動き、副業案件としても活用できます。まず自分の家計CSVを1つダウンロードしてpandasで読み込んでみることから始めましょう。

📌 節約・ポイ活のおすすめサービス

コメント

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