AIでExcelの関数を作る方法|入力例と期待する答えで確かめる

受注表の紙模型、そろばん、空欄と0を区別する小物

こんにちは。バナナデスクです。

「AIにExcelの関数を作ってもらったら、3万円と出た。これで合っている?」という場面を考えてみてください。式にエラーがなくても、1件の金額が空欄なら、3万円はまだ確定した合計ではありません。

AIで関数を作るときは、欲しい式だけを頼むより、入力例と、先に自分で決めた答えを渡すと確かめやすくなります。この記事では架空の受注8件を使い、同名の商品、取消、未入金、0円、空欄を含む表を実際に作りました。関数入りの練習ファイルもそのまま使えます。

AIには式を相談し、答えは表の条件で確かめる

ここで扱うのは、AIが提案した通常のExcel関数を、自分の表で確認する方法です。特定のAIサービスへ実在する顧客データを渡す必要はありません。小さな架空データに置き換え、列名と条件を伝えます。

なお、以前紹介されていた=COPILOT(...)は、Microsoftの現行案内によると2026年9月14日で提供を終了しています。ExcelのCopilot機能全体が終了したという意味ではありません。本記事のファイルはSUMIFSやIFなど通常の関数で作成し、COPILOT関数は使っていません。

8件の表から、何を足すか先に決める

次の表は全件架空です。配布ファイルでは11行目が見出し、12~19行目がデータです。金額は税込円で、取消・未入金の金額は「今回の集計対象外」とします。売上の会計処理や税務判断を定める表ではありません。

受注ID 商品ID 商品名 状態 金額(税込円)
R01 A01 文章教室 完了 12,000
R02 A01 文章教室 完了 18,000
R03 A01 文章教室 取消 12,000
R04 B01 文章教室 完了 24,000
R05 A01 文章教室 未入金 15,000
R06 A01 文章教室 完了 0
R07 A01 文章教室 完了 空欄
R08 A02 図解教室 完了 9,000

集計対象は「商品IDがA01、かつ状態が完了」のR01・R02・R06・R07です。R04は商品名が同じ「文章教室」でも、IDがB01なので除きます。商品名だけで集計する式では、この24,000円が混ざるおそれがあります。

金額が入力されている対象は12,000+18,000+0=30,000円。ただしR07の金額が分からないので、対象4件すべての合計とは呼べません。「入力済みの小計30,000円」「対象内の要確認1件」を一緒に表示します。

入力済み小計30000円でも、対象4件中1件が未入力なら確定合計にはしない図
架空8行の例。小計と入力の確認を別々に表示します。

列の場所、条件、期待値を一緒に渡す

AIへの依頼は、次のように具体化できます。表の8行も一緒に渡します。これは今回の完成例に対応する指示の見本で、同じ文章を送れば必ず同じ式が返るという保証ではありません。

Excelの通常の関数で集計する式を作ってください。
シートは「関数の練習」。A11:E11に受注ID、商品ID、商品名、状態、金額(税込円)の見出しがあり、12~19行が架空の8件です。
対象の商品IDをB4、状態をB5へ入力します。今回はA01と完了です。
同じ商品名でも商品IDが違えば除外。取消・未入金も除外します。
対象内で金額が空欄または文字なら要確認。数値の0は有効です。
F列で対象内の要確認を1、その他を0にしてください。G列は数値の金額だけを残し、その他は0にしてください。
入力済み金額の小計、要確認件数、対象件数、確認状態を別々に出してください。
元データで小計は30000円、要確認1件、対象4件。R07を数値6000にすると36000円、要確認0件になるはずです。
式と、貼り付けるセル、コピーする範囲、使った関数の理由を説明してください。COPILOT関数、マクロ、外部接続は使いません。

「売上を合計して」だけでは、商品名で合わせるのか、IDで合わせるのか、取消をどう扱うのかが決まりません。自分がまだ決めていない業務上の条件を、AIが勝手に補っていないかも見てください。

集計と、入力の確認を分けた式にする

練習ファイルのB4には商品IDのA01、B5には状態の完了を入力しています。F12には対象内の金額が数値かを点検する式を置き、F19までコピーしました。

=IF(AND(B12=$B$4,D12=$B$5),IF(ISNUMBER(E12),0,1),0)

対象に合う行だけを調べ、金額が数値なら0、数値でなければ1です。R06の0円は数値なので0、R07の空欄は1になります。ISNUMBERの公式説明でも、値が数値かどうかを判定し、数字の形をした文字列を自動で数値へ変換しない性質が説明されています。

次にG12へ次の式を入れ、G19までコピーします。ここは集計用の補助列であり、元のE列を書き換える操作ではありません。

=IF(ISNUMBER(E12),E12,0)

数値だけをG列へ通し、空欄や文字は集計上0にします。ただし、それらを「実際の金額が0だった」と確定させないため、F列の要確認を必ず併用します。G列だけをコピーして使うと、空欄だった事実が消えるので注意してください。

B6の入力済み小計は、G列の金額と商品ID・状態を組み合わせます。

=SUMIFS($G$12:$G$19,$B$12:$B$19,$B$4,$D$12:$D$19,$B$5)

SUMIFSの公式資料にあるように、合計範囲と各条件範囲の行数・列数はそろえます。ここではすべて12~19行の8件です。G列だけ20行まで、商品IDだけ19行まで、といった範囲のずれを作らないでください。

表示するもの セル 式
対象内の要確認件数 B7 =SUM(F12:F19)
対象件数 B9 =COUNTIFS($B$12:$B$19,$B$4,$D$12:$D$19,$B$5)
この例の確認状態 B8 =IF(B7>0,"金額を確認",IF(B9=0,"対象なし","集計可"))

「集計可」は、この例で決めた金額入力の条件を満たすという表示です。商品IDの入力ミス、二重受注、金額そのものの誤りまで確認できた意味ではありません。新しい表へ流用する場合は、必要な確認を追加します。

答えが変わる条件を、一つずつ試す

完成ファイルは、Excel形式の数式を計算できる@oai/artifact-toolで再計算し、次の5条件と元の状態への復元を確認しました。Microsoft Excel本体の画面を操作した検証ではありません。Excelで使う際にも、下の期待値と照合してください。

試した条件 入力済み小計 要確認 対象件数 表示
元の8行 30,000円 1件 4件 金額を確認
R07のE18へ数値6000 36,000円 0件 4件 集計可
E18へ数値0 30,000円 0件 4件 集計可
E18へ文字として6000 30,000円 1件 4件 金額を確認
対象商品IDのB4をZ99へ 0円 0件 0件 対象なし

数値に見える文字の試験では、最初に元の金額列を直接SUMIFSへ渡した式が、今回の計算エンジンで文字の6000まで加算しました。この観測をExcel本体の挙動とは扱っていません。最終版ではG列で数値かを明示的に分け、文字は要確認に残すよう修正しました。

Excelで文字の6000を作る場合は、'6000のように先頭へアポストロフィを付けて入力できます。文字であることは、見た目の左右寄せだけで判断せず、ISNUMBERの結果も確かめてください。各試験後にE18を空欄、B4をA01へ戻せば、最初の確認状態になります。

関数と8件の架空データが入ったExcel練習ファイルをダウンロード

式が動かないときは、答えの前に入力を調べる

貼り付けた数式そのものが表示される場合は、セルの表示形式や、先頭に付いたアポストロフィを確認します。数式を文字として扱う状態と、計算した結果が違う状態は分けて調べます。

また、この記事の式はカンマで引数を区切っています。Microsoftの数式エラーの案内では、OSの地域とExcelの設定によりカンマやセミコロンなどの区切りが異なることも説明されています。使っているExcelの言語・バージョン・区切りをAIへ伝え、全角の括弧や引用符が混ざっていないかも見ます。

空欄の個数だけを知りたい場合はCOUNTBLANKもありますが、公式資料では0は空欄として数えず、空文字を返す数式は数えると説明されています。今回の目的は「対象の商品・状態で、金額が数値でない行」の確認なので、空欄全体を数えるだけでは足りません。

大きい表へ広げる前に、確認用の小さい表を残す

このファイルの範囲は12~19行で固定です。20行目以降に受注を足しても、式の対象へ自動追加される設計にはしていません。実務の表へ広げる場合は、対象行数、表の追加方法、商品IDの管理を決め、同じ期待値の試験をもう一度行います。

AIへ依頼するときに一番役立つのは、立派な専門用語より「この行は含める」「この行は除く」「空欄のまま合計を確定させない」という具体的な条件です。小さな表で自分が説明できる答えを作り、その答えになる式を確認してから広げましょう。