GPTでExcel数式を自動生成 - AIによるExcel自動化の第一歩
複雑な数式作成の悩み解決!ChatGPTに欲しい機能を説明すればすぐ使える数式を作ってくれます。
簡単な数式生成依頼
Excel関数を知ることと実際に数式を作ることは別の問題です。IF、AND、ORを組み合わせたり、VLOOKUPにIFERRORをネストしたりすると、括弧も混乱するしエラーもよく出ますよね。
今はAIに「こうしてください」と言うだけでいいんです。複雑な数式もサクサク作ってくれます。まるで個人秘書がExcel作業を代わりにしてくれるように。
この記事では、AIに数式を作ってもらう方法を学びます。簡単な計算から複雑な条件式まで、どう依頼すれば正確な数式が得られるか、実践例と共に見ていきましょう。
1. 基本数式依頼パターン
数式を依頼する時、最も重要なのは「データがどこにあるか」正確に伝えることです。漠然と「計算して」と言っても、AIもどうすればいいか分かりません。でも「A列にこれ、B列にあれ」と具体的に言えば、すぐピッタリの数式を作ってくれます。
パターン1: データ位置の明示
最も基本的なパターンから始めましょう。データがどの列にあるかだけ明確に伝えれば、AIが正確な数式を作ってくれます。
"A列に製品名、B列に単価、C列に数量があります。
D列に総額を計算する数式を作ってください。"
AI生成数式:
=B2*C2
簡単でしょう?単価(B列) × 数量(C列)を掛けて総額を求める数式です。2行目から始まることまで自動で把握してB2、C2で作ってくれました。この数式をD2セルに入れて下にドラッグすれば、残りの行も自動計算されます。
パターン2: 条件を含む
"E列に割引率を適用するが、C列の数量が10個以上なら10%割引、
そうでなければ5%割引を適用してください。"
AI生成数式:
=D2*(1-IF(C2>=10, 0.1, 0.05))
パターン3: 複数条件の組み合わせ
"F列にランクを表示したいです。
- 売上100万円以上: VIP
- 50万円以上: 優秀
- その他: 一般"
AI生成数式:
=IF(D2>=1000000, "VIP", IF(D2>=500000, "優秀", "一般"))
2. 実務事例別数式生成
事例1: 給与明細書
依頼:
"給与計算シートを作っています。
- B列: 基本給
- C列: 食費手当 (10万円固定)
- D列: 交通費 (5万円固定)
- E列: 総支給額
- F列: 所得税 (総支給額の3.3%)
- G列: 手取り額
各列の数式を作ってください。"
AI生成数式:
// C列 (食費手当)
=100000
// D列 (交通費)
=50000
// E列 (総支給額)
=B2+C2+D2
// F列 (所得税)
=E2*0.033
// G列 (手取り額)
=E2-F2
事例2: 在庫管理
依頼:
"在庫アラートシステムを作りたいです。
- A列: 製品名
- B列: 現在在庫
- C列: 安全在庫
- D列: ステータス (不足/正常/充分)
在庫が安全在庫より少なければ'不足'、
安全在庫の2倍以上なら'充分'、
その間なら'正常'と表示してください。"
AI生成数式:
=IF(B2<C2, "不足", IF(B2>=C2*2, "充分", "正常"))
事例3: 勤怠管理
依頼:
"出退勤時間を計算したいです。
- B列: 出勤時刻 (09:00)
- C列: 退勤時刻 (18:30)
- D列: 勤務時間 (時間単位)
- E列: 超過勤務 (8時間超過分)
- F列: 超過手当 (時給15,000円)
数式を作ってください。"
AI生成数式:
// D列 (勤務時間)
=(C2-B2)*24
// E列 (超過勤務)
=MAX(0, D2-8)
// F列 (超過手当)
=E2*15000
3. 高度な数式依頼
VLOOKUP自動生成
依頼:
"A列の社員番号で'社員情報'シートのA:D範囲から
社員名を探してB列に表示したいです。
見つからなければ'未登録'を表示してください。"
AI生成数式:
=IFERROR(VLOOKUP(A2,社員情報!$A:$D,2,FALSE),"未登録")
INDEX-MATCH組み合わせ
依頼:
"VLOOKUPの代わりにもっと柔軟な方法で
'製品DB'シートから製品名(C列)で検索して
価格(B列)を取得したいです。"
AI生成数式:
=INDEX(製品DB!$B:$B, MATCH(A2,製品DB!$C:$C,0))
SUMIFS複数条件
依頼:
"売上データから
- 地域が'東京'で
- 日付が2025年3月で
- 製品が'A型'の
売上だけ合算したいです。"
AI生成数式:
=SUMIFS(売上!$E:$E,
売上!$B:$B, "東京",
売上!$C:$C, ">=2025-03-01",
売上!$C:$C, "<=2025-03-31",
売上!$D:$D, "A型")
4. テキスト処理数式
マイナンバーから生年月日抽出
依頼:
"A列のマイナンバー(123456-1234567)から
生年月日をYYYY-MM-DD形式で抽出してください。"
AI生成数式:
=DATE(
IF(LEFT(A2,2)>25, 1900+LEFT(A2,2), 2000+LEFT(A2,2)),
MID(A2,3,2),
MID(A2,5,2)
)
メールアドレスからドメイン抽出
依頼:
"B列のメールアドレスから@以降のドメインだけ抽出してください。"
AI生成数式:
=RIGHT(B2, LEN(B2)-FIND("@",B2))
// または
=MID(B2, FIND("@",B2)+1, 100)
電話番号形式変換
依頼:
"C列の数字(09012345678)を090-1234-5678形式に変換してください。"
AI生成数式:
=LEFT(C2,3)&"-"&MID(C2,4,4)&"-"&RIGHT(C2,4)
5. 日付計算数式
勤続年数計算
依頼:
"入社日(A列)から今日までの勤続年数を計算し、
小数点第一位まで表示してください。"
AI生成数式:
=ROUND((TODAY()-A2)/365.25, 1)
// または正確に
=DATEDIF(A2, TODAY(), "Y")&"年 "&DATEDIF(A2, TODAY(), "YM")&"ヶ月"
プロジェクト進捗率
依頼:
"プロジェクト開始日(B列)、終了日(C列)を基準に
今日現在の進捗率(%)を計算してください。"
AI生成数式:
=ROUND((TODAY()-B2)/(C2-B2)*100, 0)&"%"
営業日計算
依頼:
"今日から20営業日後の日付を計算してください。
(週末除外)"
AI生成数式:
=WORKDAY(TODAY(), 20)
// 祝日も除外するなら
=WORKDAY(TODAY(), 20, 休日範囲)
6. 条件付き集計数式
複数シート合計
依頼:
"1月から12月まで各シートのD5セルの値を
すべて合算したいです。"
AI生成数式:
=SUM('1月:12月'!D5)
ユニーク値の個数
依頼:
"A列の重複を除いたユニークな値の個数を数えたいです。"
AI生成数式:
=SUMPRODUCT(1/COUNTIF(A2:A100,A2:A100))
// Microsoft 365
=COUNTA(UNIQUE(A2:A100))
条件付き平均
依頼:
"点数が60点以上の学生の平均を求めてください。"
AI生成数式:
=AVERAGEIF(B2:B50, ">=60")
7. 効果的な依頼方法
✅ 良い依頼
"社員データベースから
- A列: 社員番号
- B列: 名前
- C列: 部署
- D列: 給与
給与が300万円以上の社員数を数える数式を作ってください。"
❌ 悪い依頼
"社員データから何か計算して"
8. 数式最適化依頼
依頼:
"この数式をもっと簡単にできますか?
=IF(A2>100,IF(A2>200,IF(A2>300,"A","B"),"C"),"D")"
AI最適化数式:
=IFS(A2>300, "A", A2>200, "B", A2>100, "C", TRUE, "D")
// またはSWITCH使用
=SWITCH(TRUE,
A2>300, "A",
A2>200, "B",
A2>100, "C",
"D"
)
まとめ
AIを活用した数式生成のコツ:
- ✅ データ構造を明確に説明
- ✅ 欲しい結果を具体的に明示
- ✅ 特殊な条件があればすべて列挙
- ✅ 生成された数式をテストして検証
次の記事では実際の売上データを分析してサマリーレポートを作る方法を扱います。