AI を使った Excel 数式の作成
AI が Excel 数式のリクエストを理解する仕組み
ChatGPT、Claude、GitHub Copilot などの最新 AI ツールは、データレイアウトと求める結果を明確に説明することで、正確な Excel 数式を生成できます。鍵となるのはコンテキストの提供です:列文字、データ範囲、期待する出力です。例えば「検索数式をください」ではなく、「Sheet1 の A 列に社員 ID、Sheet2 の A 列に名前、B 列に給与があります。各社員の給与を Sheet1 の C 列に抽出したい」と伝えます。プロンプトが具体的であればあるほど、一発で正しい数式を得られる可能性が高まります。
AI モデルは、ドキュメント、フォーラム、チュートリアルから収集した数百万の Excel 数式例でトレーニングされています。数百の関数の構文を理解し、人間が構築・デバッグするのに数分かかるようなネスト数式に組み合わせることができます。ただし、AI は実際のスプレッドシートを見ることができないため、行番号、シート名、データ型などの構造的コンテキストを提供する必要があります。
AI が得意とする主要な数式カテゴリ
AI ツールは以下の数式カテゴリで特に優れたパフォーマンスを発揮します:
- 検索関数:VLOOKUP、XLOOKUP、INDEX-MATCH の組み合わせ
- 条件付き集計:SUMIFS、COUNTIFS、AVERAGEIFS、MAXIFS
- テキスト操作:TEXTJOIN、LEFT/RIGHT/MID、SUBSTITUTE、正規表現パターン
- 日付と時刻の演算:NETWORKDAYS、EOMONTH、DATEDIF、WORKDAY
- 論理ネスト:ネスト IF、IFS、SWITCH、AND/OR の組み合わせ
- 動的配列:FILTER、SORT、UNIQUE、SEQUENCE、LAMBDA
- 財務計算:XNPV、XIRR、PMT、FV、NPV
実際の数式例と AI プロンプト
例 1:INDEX-MATCH-MATCH による双方向検索
プロンプト:「行(A3:A12)に製品名、列(B2:E2)に四半期(Q1-Q4)の売上表があります。G1 に入力された製品と H1 に入力された四半期の売上を検索する数式が必要です。INDEX-MATCH-MATCH でお願いします。」
AI が生成した数式:
=INDEX(B3:E12, MATCH(G1, A3:A12, 0), MATCH(H1, B2:E2, 0))
この数式は、最初の MATCH で G1 の製品の A3:A12 内での行位置を、2 番目の MATCH で H1 の四半期の B2:E2 内での列位置を見つけ、INDEX がその交点の値を返します。
例 2:日付範囲付きの複数条件 SUMIFS
プロンプト:「A 列に日付、B 列に製品カテゴリ、C 列に売上金額があります。2026年1月1日から2026年3月31日までの 'Electronics' カテゴリの売上を合計したいです。データは2行目から500行目までです。」
AI が生成した数式:
=SUMIFS(C2:C500, B2:B500, "Electronics", A2:A500, ">=1/1/2026", A2:A500, "<=3/31/2026")
SUMIFS 関数は3つの条件を同時に評価します:カテゴリが「Electronics」に一致し、日付が2026年Q1の範囲内であること。各条件ペアは(条件範囲, 条件)のパターンに従います。
例 3:パーセンテージ段階別のネスト IF
プロンプト:「D 列に売上数値があります。コミッション段階を割り当てたいです:0-5000 は 5%、5001-10000 は 7%、10001-20000 は 10%、20000 以上は 12%。2行目用の数式を作成してください。」
AI が生成した数式:
=IF(D2<=5000, D2*0.05, IF(D2<=10000, D2*0.07, IF(D2<=20000, D2*0.10, D2*0.12)))
Excel 2019 以降では、AI はより簡潔な IFS の代替案を提案する場合があります:
=IFS(D2<=5000, D2*0.05, D2<=10000, D2*0.07, D2<=20000, D2*0.10, TRUE, D2*0.12)
例 4:複数条件の FILTER(動的配列)
プロンプト:「データは A2:D200 にあり、ヘッダーは Name、Department、Salary、Location です。Department が 'Engineering' かつ Salary が 80000 を超える行をすべてフィルタリングして表示したいです。FILTER 関数を使用してください。」
AI が生成した数式:
=FILTER(A2:D200, (B2:B200="Engineering")*(C2:C200>80000), "該当レコードなし")
乗算は FILTER 関数内で論理 AND 演算子として機能します——各 TRUE は 1 と評価され、両方の条件が TRUE(1*1=1)である行のみがフィルターを通過します。
Excel 数式のためのプロンプトエンジニアリング
AI から信頼性の高い数式を得るには、構造化されたプロンプトが必要です。以下は検証済みのテンプレートです:
プロンプトテンプレート:
「[Excel バージョン(例:Excel 365)]を使用しています。データ構造は以下の通りです:
- [A 列ヘッダー]:[説明、データ型、サンプル値]
- [B 列ヘッダー]:[説明、データ型、サンプル値]
[具体的な結果]を実現する数式が必要です。数式は[対象セル/列]に配置します。追加制約:[空白処理、大文字小文字の区別など]」
AI 数式の精度を向上させる主要テクニック:
- Excel のバージョンを指定:Excel 365 は動的配列(FILTER、SORT、UNIQUE)と LAMBDA をサポートします。古いバージョンでは Ctrl+Shift+Enter による従来の配列数式が必要です。
- 正確なセル範囲を提供:「売上データ」を「SalesData という名前の A2:A500」に置き換えます。
- エッジケースを明記:空白セル、エラー、重複、ゼロ値の処理方法を AI に伝えます。
- 代替案を要求:「2つのアプローチをください」と依頼して VLOOKUP と INDEX-MATCH、SUMIFS と SUMPRODUCT を比較します。
- 説明を求める:「この数式がどのように動作するか段階的に説明してください」を追加することで、学習と正確性の検証に役立ちます。
よくある落とし穴と AI 生成数式の検証方法
AI が生成した数式は完璧ではありません。以下の再発する問題に注意してください:
- VLOOKUP 列インデックスエラー:table_array が A 以外の列から始まる場合、AI が検索列番号を誤って数えることがあります。必ず col_index_num を確認してください。
- 絶対参照と相対参照:AI がドラッグダウンシナリオに対して相対参照($A1 vs A$1 vs A1)を誤って使用することがあります。数式をコピーする前にドル記号をチェックしてください。
- 日付形式の曖昧さ:AI は米国日付形式(MM/DD/YYYY)を前提とする場合があります。地域設定が異なる場合、数式内の日付が誤動作する可能性があります。
- 配列数式の互換性:AI があなたの Excel バージョンで動作しない動的配列数式を生成する可能性があります。
- 範囲のオフバイワンエラー:ヘッダー行がデータ範囲に含まれると不一致が発生します。
検証チェックリスト:
- 数式をスプレッドシートにコピーし、3〜5 個の既知の値でテストします。
- エッジケースをチェック:空白セル、最大値/最小値、数値列内のテキスト。
- 数式の検証(数式タブ > 数式の評価)を使用して計算をステップ実行します。
- 少なくとも 1 行について手動計算と比較します。
- 数式がエラーを返した場合、AI に質問:「この数式は #N/A を返しました。データ範囲は A2:B50 です。何が問題でしょうか?」
個人用 AI 数式ライブラリの構築
自分のデータセットに適合する AI 生成数式が蓄積されたら、再利用可能なライブラリに整理します。数式カテゴリごとに個別のシート(検索、テキスト、日付、条件、財務)を持つ Excel ワークブックを作成します。各シートには、元のプロンプト、生成された数式、機能の平易な説明、テスト後の修正メモの列を含めます。
チーム環境では、Excel の LAMBDA 関数(Excel 365)を使用して、複雑な AI 生成数式を名前付きの再利用可能なカスタム関数としてパッケージ化します。たとえば、上記の INDEX-MATCH-MATCH ロジックを LAMBDA でラップすると、一度定義すれば任意のワークブックの任意のセルから呼び出せます:
=LAMBDA(lookup_val, row_header, col_header, data_range, row_range, col_range, INDEX(data_range, MATCH(lookup_val, row_range, 0), MATCH(col_header, col_range, 0)))
名前マネージャーでこの LAMBDA を「TwoWayLookup」という名前に割り当てれば、チーム全体が =TwoWayLookup(G1, H1, B3:E12, A3:A12, B2:E2) を使用でき、基になる INDEX-MATCH の仕組みを理解する必要はありません。
AI の限界と対処法
AI は、視覚的なレイアウトの手がかり——結合セル、非表示行、条件付き書式ルール、データ検証制約——に依存する数式では苦戦します。また、外部ワークブックの参照や変動するリアルタイムデータ(株価、API フィード)も処理できません。このような場合:
- 結合セルのレイアウトでは、AI に数式を依頼する前に結合を解除して再構成します。
- 外部データ接続については、プロンプトで接続構造を説明します。
- 非常に複雑な多段階ロジック(10 以上のネスト条件)では、まず AI に問題を補助列に分解させてから統合します。
- AI が繰り返し失敗する場合は、エラーメッセージを共有して自身の出力をデバッグさせます——この反復アプローチは通常 2〜3 回のやり取りで問題を解決します。