売上や経費の集計、入出金の抜け漏れ確認、月次の振り返り…。Excelでやると便利ですが、関数づくりで手が止まりがちですよね。
そこで頼れるのがChatGPT。要件を伝えるだけで、あなたの台帳に“そのまま差し込める”関数案を一気に整えてくれます。
この記事では、台帳設計→関数作成→自動集計の流れを、コピペで使える指示文と式つきでスッと解説します。
まずは土台:副業管理の台帳レイアウト(おすすめ列)
関数は「列の意味」が決まるほど作りやすくなります。最低限、次の列があると後工程がラクです。
- 日付(
YYYY/MM/DD) - 区分(売上/経費)
- 案件名
- クライアント
- 明細(メモ)
- 金額(税込)
- 税率
- 手数料
- 支払方法
- 請求No
- 月(派生列:
YYYY-MM) - カテゴリ(派生 or マスタ参照)
Step1:関数づくりを丸投げする“要件の書き方”
モヤモヤしやすいのは「どう伝えればいいか」。下のテンプレをコピペし、列名とシート名だけ差し替えればOKです。
次のExcel台帳に入れる関数を作ってください。
【シート】台帳
【列】A:日付、B:区分、C:案件名、D:クライアント、E:明細、F:金額、G:税率、H:手数料、I:支払方法、J:請求No、K:月、L:カテゴリ
【要件】
1) K列「月」= 日付から "YYYY-MM" を返す式(テーブルでも通常範囲でも動く)
2) 月次の売上合計・経費合計・粗利(売上-経費-手数料)を別シート「集計」にSUMIFSで集計
3) E列の明細に含まれるキーワードをもとにカテゴリ自動判定(マスタは「マスタ!A:B」= キーワード/カテゴリ)
4) 日本語版Excelでも英語関数名でもOK。必要なら両対応版で
5) Excel 365以外でも動く代替式も提示(配列数式の場合は注記)
出力形式:説明→セルに入れる関数→(必要なら)注意点
Step2:そのまま使える“基本の式”セット
ここでは代表的な派生列と集計式を掲載します。必要なところだけ貼り付けてください。
①「月」列(K列)を作る
テーブル未使用の通常範囲例(2行目からデータ):
=TEXT(A2,"yyyy-mm")
Excel 365のテーブル(台帳というテーブル名・列名「日付」)なら:
=TEXT([@日付],"yyyy-mm")
② 月次集計(別シート「集計」)
集計シートA列に対象月(例:2025-10)が並んでいる想定。売上=区分「売上」の金額合計、経費=区分「経費」の金額合計。
売上合計(B2):
=SUMIFS(台帳!$F:$F, 台帳!$B:$B, "売上", 台帳!$K:$K, $A2)
経費合計(C2):
=SUMIFS(台帳!$F:$F, 台帳!$B:$B, "経費", 台帳!$K:$K, $A2)
手数料合計(D2):
=SUMIFS(台帳!$H:$H, 台帳!$K:$K, $A2)
粗利(E2):
=IFERROR(B2 - C2 - D2, 0)
③ カテゴリ自動判定(キーワードマッチ)
「マスタ」シート A列=キーワード、B列=カテゴリ。明細文(E列)にキーワードを含むものを優先1件返す。
Excel 365(動的配列)向け:
=LET(
k, マスタ!$A$2:$A$200,
c, マスタ!$B$2:$B$200,
m, ISNUMBER(SEARCH(k, E2)),
IF(COUNTIF(m, TRUE),
INDEX(c, XMATCH(TRUE, m)),
"未分類"
)
)
365以外(配列数式・Ctrl+Shift+Enter)向け:
=IFERROR(
INDEX(マスタ!$B$2:$B$200,
MATCH(1, --ISNUMBER(SEARCH(マスタ!$A$2:$A$200, E2)), 0)
),
"未分類")
④ 入金確認(請求Noで突合)
請求管理表「請求」シートに、A列=請求No、B列=入金日 がある想定。未入金なら空白。
=IFERROR(
XLOOKUP(J2, 請求!$A:$A, 請求!$B:$B, ""),
""
)
XLOOKUPがない環境:
=IFERROR(
INDEX(請求!$B:$B, MATCH(J2, 請求!$A:$A, 0)),
"")
Step3:ChatGPTに“状況別で最適化”してもらう
環境差(Excelのバージョン、英語/日本語関数名、テーブル or 通常範囲)で式が微妙に変わります。下の指示で一発調整できます。
次の式を、【Excel 2016(日本語環境)】【通常範囲】【XLOOKUPなし】で動くように書き換え、
必要なら配列数式の注記も入れてください。式:◯◯(ここに式を貼る)
テーブル名や列名が異なるときに壊れないよう、範囲絶対参照($)を適切に付けた通常範囲版を提示してください。対象シート:台帳、集計、マスタ。
Step4:よくある“つまずき”を先回りで回避
- 日付の文字列問題:日付が文字列だと集計漏れが発生。A列の先頭で
データ > データの型 > 日付に統一。 - 全角/半角ゆらぎ:クライアント名はマスタ化し、データの入力規則(リスト)で選択式に。
- カテゴリ重複:キーワードは長いもの(固有名詞)→短いものの順に。マスタの並び順で先勝ちになります。
- セル参照の暴走:列の追加前に、式の参照列を固定($)しておくと崩れにくいです。
Step5:月次レポの“ひな形”をChatGPTに作らせる
ピボットが苦手でも、文章+表の体裁をAIに整えてもらえばOK。次のプロンプトで、
「今月の売上TOP3案件/入金遅延/費目別コスト」などの視点を定着できます。
「集計」シートの月次合計(売上・経費・手数料・粗利)と、
「台帳」から今月の売上上位3件、未入金案件(請求Noはあるが入金日空白)を
箇条書きと小さな表のレポートに整えてください。
Excelで再現できる見出し・表構成と、書き出し文(200字以内)を出力。
Step6:もう一歩進める自動化(任意)
① LAMBDAで“月”変換を関数化(Excel 365)
名前の管理で定義しておけば、どのブックでも使い回せます。
=LAMBDA(d, TEXT(d, "yyyy-mm"))
セルでは =月ID(A2) のように呼び出し(定義名を「月ID」に設定)。
② 伝票番号の自動採番(VBA・任意)
VBAが使える環境なら、請求Noの末尾に連番を自動付与。
※セキュリティ設定に留意。マクロ無効環境では実行されません。
Sub 採番()
Dim ws As Worksheet: Set ws = Worksheets("台帳")
Dim r As Long, last As Long, base As String, seq As Long
last = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
seq = Application.WorksheetFunction.Max(ws.Range("J2:J" & last)) ' 数値のみ想定
For r = 2 To last
If ws.Cells(r, "J").Value = "" And ws.Cells(r, "B").Value = "売上" Then
seq = seq + 1
base = Format(ws.Cells(r, "A").Value, "yymm")
ws.Cells(r, "J").Value = base & "-" & Format(seq, "000")
End If
Next r
End Sub
使い方のコツ:ChatGPTへの依頼は“具体×短文×段階”
いきなり複雑な式を求めず、①小さく要件を出す → ②試す → ③差分修正を依頼、の繰り返しが最速です。
不安があれば「365以外でも動く代替式も」「日本語関数名も併記で」など、“保険ワード”を添えると安心。
まとめ:関数は“自分で作る”から“作ってもらう”へ
Excelでの副業管理は、台帳の型が決まれば8割終わり。残りはChatGPTに関数化してもらい、あなたは判断に集中できます。
迷いを減らし、集計の待ち時間をゼロにする――その積み重ねが月次の精度とスピードを底上げします。
今日から、ひとつの列・ひとつの式だけでもAIに任せてみましょう。行動のハードルが、きっとスッと下がります。