Excel

ChatGPTに関数を作らせてExcel副業管理を高速化する|指示テンプレとすぐ使える式サンプル

  • 最終更新日
  • 副業ぐらし編集部

売上や経費の集計、入出金の抜け漏れ確認、月次の振り返り…。Excelでやると便利ですが、関数づくりで手が止まりがちですよね。
そこで頼れるのがChatGPT。要件を伝えるだけで、あなたの台帳に“そのまま差し込める”関数案を一気に整えてくれます。
この記事では、台帳設計→関数作成→自動集計の流れを、コピペで使える指示文と式つきでスッと解説します。

ChatGPTはこちら

まずは土台:副業管理の台帳レイアウト(おすすめ列)

関数は「列の意味」が決まるほど作りやすくなります。最低限、次の列があると後工程がラクです。

  1. 日付(YYYY/MM/DD
  2. 区分(売上/経費)
  3. 案件名
  4. クライアント
  5. 明細(メモ)
  6. 金額(税込)
  7. 税率
  8. 手数料
  9. 支払方法
  10. 請求No
  11. 月(派生列:YYYY-MM
  12. カテゴリ(派生 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:よくある“つまずき”を先回りで回避

  1. 日付の文字列問題:日付が文字列だと集計漏れが発生。A列の先頭で データ > データの型 > 日付 に統一。
  2. 全角/半角ゆらぎ:クライアント名はマスタ化し、データの入力規則(リスト)で選択式に。
  3. カテゴリ重複:キーワードは長いもの(固有名詞)→短いものの順に。マスタの並び順で先勝ちになります。
  4. セル参照の暴走:列の追加前に、式の参照列を固定($)しておくと崩れにくいです。

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に任せてみましょう。行動のハードルが、きっとスッと下がります。

この記事の著者

シバタ@副業ぐらし Xアカウント
副業とAI活用を追求・研究しているフリーランスの副業プレイヤーです。パソコンで出来る副業や投資を始めて10年以上経ちます。実際に役にたつ情報を分かりやすく丁寧に発信していきます。