「確定申告って、なんだか難しそう…」「青色申告と白色申告、どっちがいいの?」

フリーランスとして独立したばかりのエンジニアの方なら、こんな疑問を抱えているんじゃないでしょうか。

実は確定申告、最初の仕組みさえ理解してしまえば、毎年のルーティン作業になります。しかもエンジニアなら、Pythonで経費集計を自動化して、申告作業そのものを一気にラクにできるんですよね。

今回はフリーランスエンジニア向けに、青色申告の基礎から、Pythonを使った経費集計の自動化まで、まるっと解説していきます!

🧾 青色申告と白色申告、何が違うの?

tax documents calculator
tax documents calculator / Photo by Leeloo The First via Pexels

まずはざっくりした違いを押さえておきましょう。

項目 青色申告 白色申告
特別控除 最大65万円(電子申告の場合) なし
帳簿の種類 複式簿記(または簡易簿記) 簡易な記帳でOK
赤字の繰越 3年間繰り越し可能 不可
事前申請 必要(開業から2ヶ月以内) 不要

フリーランスエンジニアなら、ほぼ迷わず青色申告一択です。65万円の控除はあまりにも大きいですし、案件が少ない年に赤字が出ても翌年以降に繰り越せるメリットは絶大です。

まだ「青色申告承認申請書」を出していない方は、最寄りの税務署に早めに提出しておきましょう。

📋 フリーランスエンジニアが計上できる主な経費

「経費って何が入るの?」というのも、よくある疑問ですよね。エンジニアが計上できる代表的な経費をまとめました。

  • 💻 PC・周辺機器(開発用マシン、モニター、キーボードなど)
  • 🌐 通信費(インターネット回線、スマホ代の業務按分)
  • 📚 書籍・学習費(技術書、Udemyなどのオンライン講座)
  • ☁️ サービス利用料(AWS・GCP・GitHub・ChatGPT Plusなど)
  • 🏠 家賃の按分(自宅で作業している場合、業務利用分)
  • 🚃 交通費(打ち合わせのための移動)
  • 📝 外注費(デザイナーや他エンジニアへの業務委託)

「按分(あんぶん)」というのは、プライベートと業務で共用しているものを割合で分けることです。たとえば自宅の家賃なら「仕事で使っている部屋の割合」、スマホ代なら「業務利用の時間の割合」を根拠にして計上します。

🗓️ 確定申告のざっくりしたスケジュール

毎年の流れはこんな感じです。

  1. 1月〜2月:1年分の収支を整理・帳簿を締める
  2. 2月16日〜3月15日:確定申告書を提出(e-Taxなら自宅からOK)
  3. 3月〜4月:納税 or 還付

ポイントは、日頃から帳簿をこまめにつけておくこと。2月になってから1年分のレシートを掘り起こすのは、本当につらいんですよね…(経験者談)。

🐍 PythonでCSV経費データを自動集計してみよう

ここからが、エンジニアらしい楽しみどころです。

freeeやマネーフォワードなどの会計ツールを使っている方も多いと思いますが、「CSVで出力したデータをさっと集計したい」「カテゴリ別に分析したい」という場面でPythonは強力な味方になります。

想定するCSVの形式

まず、経費データのCSVはこんな形式を想定します。

日付,カテゴリ,内容,金額
2024-01-15,書籍・学習,Python実践入門,3080
2024-01-20,通信費,AWS利用料,1540
2024-02-01,ソフトウェア,GitHub Copilot,1210
2024-02-10,書籍・学習,Udemy講座購入,2400
2024-03-05,交通費,打ち合わせ電車代,550
2024-03-15,通信費,インターネット回線,4500

カテゴリ別に合計を出すスクリプト

まずは基本形です。カテゴリごとの合計金額を集計して表示します。

# expense_summary.py
import pandas as pd

# CSVファイルを読み込む
df = pd.read_csv("expenses.csv")

# 日付列をdatetime型に変換
df["日付"] = pd.to_datetime(df["日付"])

# カテゴリ別に合計金額を集計
category_total = df.groupby("カテゴリ")["金額"].sum().sort_values(ascending=False)

print("=== カテゴリ別 経費合計 ===")
for category, total in category_total.items():
    print(f"{category:<20} {total:>8,} 円")

# 全体の合計
total_expense = df["金額"].sum()
print("-" * 35)
print(f"{'合計':<20} {total_expense:>8,} 円")

ポイントをまとめるとこんな感じです。

  • groupby() でカテゴリごとにまとめて sum() で合計を出す
  • sort_values(ascending=False) で金額の多い順に並べる
  • f文字列の :>8, で金額を右揃え・3桁区切りで表示する

月別の経費推移を出すスクリプト

次に、月ごとの経費推移も見てみましょう。季節によって出費の波があるので、これを把握しておくと申告の説明もしやすくなります。

# monthly_expense.py
import pandas as pd

df = pd.read_csv("expenses.csv")
df["日付"] = pd.to_datetime(df["日付"])

# 月ごとの列を追加
df["年月"] = df["日付"].dt.to_period("M")

# 月別・カテゴリ別のクロス集計
monthly_pivot = df.pivot_table(
    index="年月",
    columns="カテゴリ",
    values="金額",
    aggfunc="sum",
    fill_value=0  # データがない月は0で埋める
)

print("=== 月別・カテゴリ別 経費集計 ===")
print(monthly_pivot.to_string())

# 月合計を追加
monthly_pivot["月合計"] = monthly_pivot.sum(axis=1)
print("\n=== 月別 合計 ===")
print(monthly_pivot[["月合計"]])

ここが重要です。

  • dt.to_period("M") で日付を「年月」に変換する
  • pivot_table() で月×カテゴリのクロス集計ができる
  • fill_value=0 でデータのない組み合わせを0で埋めてくれる

年間まとめレポートをテキスト出力するスクリプト

最後に、確定申告の参考資料としてそのまま使えるような、年間まとめをテキストファイルに出力するスクリプトです。

# annual_report.py
import pandas as pd
from datetime import datetime

df = pd.read_csv("expenses.csv")
df["日付"] = pd.to_datetime(df["日付"])

# 対象年を指定(今年のデータを集計)
target_year = 2024
df_year = df[df["日付"].dt.year == target_year]

# カテゴリ別集計
category_total = df_year.groupby("カテゴリ")["金額"].sum()
total = df_year["金額"].sum()

# レポートをテキストファイルに書き出す
output_path = f"expense_report_{target_year}.txt"
with open(output_path, "w", encoding="utf-8") as f:
    f.write(f"【{target_year}年 経費集計レポート】\n")
    f.write(f"作成日: {datetime.now().strftime('%Y-%m-%d')}\n")
    f.write("=" * 40 + "\n\n")

    f.write("■ カテゴリ別 経費合計\n")
    for cat, amt in category_total.sort_values(ascending=False).items():
        f.write(f"  {cat:<18} {amt:>8,} 円\n")

    f.write("\n" + "-" * 40 + "\n")
    f.write(f"  {'経費合計':<18} {total:>8,} 円\n")

print(f"レポートを出力しました: {output_path}")

これを実行すると、expense_report_2024.txt というファイルに年間の経費まとめが出力されます。税理士さんに渡す資料としても使えますよ。

💡 経費管理をラクにするためのコツ


スクリプトを作る前提として、日々の記録習慣も大切です。

  • 📌 レシートはその日のうちにスマホで撮影する(Googleフォトやfreeeのカメラ機能が便利)
  • 📌 クレジットカードを仕事用に1枚専用化する(明細がそのまま記録になる)
  • 📌 毎月末に15分だけCSVをチェックする時間を作る
  • 📌 「これ経費になる?」と迷ったらメモしておく(後で税理士に確認できる)

仕組みを作ってしまえば、確定申告が「面倒な山」ではなく「毎年の作業」に変わります。

まとめ


今回は、フリーランスエンジニアに向けて青色申告の基礎知識と、Pythonを使った経費集計の自動化をセットで解説しました。

ポイントを振り返るとこんな感じです。

  • ✅ フリーランスなら青色申告一択(最大65万円控除)
  • ✅ 経費は「業務に関係する支出」を漏れなく記録する
  • ✅ PythonのpandasでCSVを集計すれば、申告作業が一気にラクになる
  • ✅ 日々の記録習慣が、確定申告の苦労を9割減らす

「確定申告は難しそう」という気持ち、少しでも「なんとかできそう!」に変われば嬉しいです😊

ぜひ今年の申告から、Pythonで経費集計を自動化してみてください。エンジニアらしい「仕組みで解決する」スタイルで、確定申告を乗り越えていきましょう!

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

もしも

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

電子工作とプログラミングを同時に学べる

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。