【Excel】「関数はAIに任せて」良いのか?
昨今、SNS上で「Excelの関数はもう覚えなくていい!」といった投稿が見られるようになり、さらに「関数を自分で考えて入力するのは時代遅れだ!」と踏み込んだ表現をする投稿も現れました。その背景には生成AIの存在があります。すなわち、「関数の作成はもうAIに任せれば良い」と訴えているのです。
確かに、生成AIの利活用が業務効率化を大きく左右することは疑いようがありません。しかし、AIが生成する関数式が常に正しいとは限らず、誤った数式や不完全な数式が提示される可能性も当然あります。
このような現象は「ハルシネーション(hallucination/幻想)」と呼ばれます。生成AIは確率的にもっともらしい答えを導き出す仕組みであるため、必ずしも利用者の作業環境に最適化された結果が得られるとは限りません。モデルによっては、Excel関数に関する学習データが不足していたり、偏っていたり、あるいは誤情報を含んでいたりする場合があります。その結果、不正確なデータを参照した回答や、理解が不十分な回答が生成される可能性を排除できません。
したがって、AIの出力をそのまま鵜呑みにするのではなく、ヒトが正確性を判断できなければなりません。
実際にハルシネーションが起きた事例をご紹介いたします。Office製品に標準搭載されているCopilot、および、最もメジャーな生成AIであるChatGPTを使って検証しました。また、初級者が利用することを想定してあえて抽象的なプロンプト(指示)を入力しています。
プロンプト:住所から都道府県名を抽出する数式
【前提】
セルA2に入力されている住所から都道府県名を抜き出してセルB2に入力する
【得られた回答】
【解説】
両AIともに、文字列を左端から抜き出す『LEFT関数』を利用し、A2の住所の中で「都」「道」「府」「県」の位置を動的配列で探すという構造は共通しています。Copilotは条件に適合する値を検索する『MATCH関数』に数値か否かを返す『ISNUMBER関数』と検索文字列が対象文字列内の相対的な位置を返す『FIND関数』をネスト(入れ子)する形式が、ChatGPTは最小値を返す『MIN関数』に同じく『FIND関数』をネストする形式となっています。
両者をそれぞれコピーしてセルに貼り付けるとCopilot数式は「東」しか抽出できませんでした。

Copilot数式にはMATCH関数で「住所の中で最初に見つかった終端文字(都・道・府・県)が配列の何番目か」を返してしまうため、“~都”なら1文字、“~道”なら2文字と規則的な処理を行ってしまう欠陥があります。そのため、「東京都」は1文字しか抽出されなかったということです。
それでは、ChatGPT数式は問題ないかというとそうではありません。
次のようなケースで正しく抽出されませんでした。

「京都府」は“都”が“府”より先に来るため、FIND関数の返す値が「2」となることから2文字しか抽出されませんでした。
京都以外の46都道府県は抽出できるから問題ないと考えることもできますが、なぜ京都だけは抽出できないのかという理屈が解からない上で利用することは決しておすすめできません。AIを盲信してしまうと、ほかの場面でも誤りに気付かず利用してしまい抜け出せなくなってしまう可能性があります。
生成AIは「単純な関数」や「よくあるパターン」には強いものの、Excel特有の仕様理解や複雑な条件の組み合わせが必要な場面では誤りやすい性質が今のところあります(※将来的に解消される可能性もあります)。特に、「複雑なネスト」「端数処理」「動的参照」「非公式関数」などを苦手とする傾向があります。そのため、AIが生成した数式は必ずヒトの手で確認・検証する必要があります。生成された数式に誤りがないことを判断できるだけの知識や理解がない場合は、むやみやたらに利用することは避けるべきと言えます。
加えて、情報セキュリティやプライバシー保護の観点から、実際の業務上の機密データを含むExcelファイルをAIツールにアップロードしたり、機密データを直接入力して質問したりすることは、情報漏洩に繋がる恐れがあるため行わないようにしてください。質問する際は汎用的な例や架空のデータで行うことを推奨します。
確かに、生成AIの利活用が業務効率化を大きく左右することは疑いようがありません。しかし、AIが生成する関数式が常に正しいとは限らず、誤った数式や不完全な数式が提示される可能性も当然あります。
このような現象は「ハルシネーション(hallucination/幻想)」と呼ばれます。生成AIは確率的にもっともらしい答えを導き出す仕組みであるため、必ずしも利用者の作業環境に最適化された結果が得られるとは限りません。モデルによっては、Excel関数に関する学習データが不足していたり、偏っていたり、あるいは誤情報を含んでいたりする場合があります。その結果、不正確なデータを参照した回答や、理解が不十分な回答が生成される可能性を排除できません。
したがって、AIの出力をそのまま鵜呑みにするのではなく、ヒトが正確性を判断できなければなりません。
実際にハルシネーションが起きた事例をご紹介いたします。Office製品に標準搭載されているCopilot、および、最もメジャーな生成AIであるChatGPTを使って検証しました。また、初級者が利用することを想定してあえて抽象的なプロンプト(指示)を入力しています。
プロンプト:住所から都道府県名を抽出する数式
【前提】
セルA2に入力されている住所から都道府県名を抜き出してセルB2に入力する
【得られた回答】
| Copilot | =LEFT(A2, MATCH(TRUE, ISNUMBER(FIND({"都","道","府","県"}, A2)),0)) |
| ChatGPT | =LEFT(A2, MIN(FIND({"都","道","府","県"}, A2 & "都道府県"))) |
【解説】
両AIともに、文字列を左端から抜き出す『LEFT関数』を利用し、A2の住所の中で「都」「道」「府」「県」の位置を動的配列で探すという構造は共通しています。Copilotは条件に適合する値を検索する『MATCH関数』に数値か否かを返す『ISNUMBER関数』と検索文字列が対象文字列内の相対的な位置を返す『FIND関数』をネスト(入れ子)する形式が、ChatGPTは最小値を返す『MIN関数』に同じく『FIND関数』をネストする形式となっています。
両者をそれぞれコピーしてセルに貼り付けるとCopilot数式は「東」しか抽出できませんでした。

Copilot数式にはMATCH関数で「住所の中で最初に見つかった終端文字(都・道・府・県)が配列の何番目か」を返してしまうため、“~都”なら1文字、“~道”なら2文字と規則的な処理を行ってしまう欠陥があります。そのため、「東京都」は1文字しか抽出されなかったということです。
それでは、ChatGPT数式は問題ないかというとそうではありません。
次のようなケースで正しく抽出されませんでした。

「京都府」は“都”が“府”より先に来るため、FIND関数の返す値が「2」となることから2文字しか抽出されませんでした。
京都以外の46都道府県は抽出できるから問題ないと考えることもできますが、なぜ京都だけは抽出できないのかという理屈が解からない上で利用することは決しておすすめできません。AIを盲信してしまうと、ほかの場面でも誤りに気付かず利用してしまい抜け出せなくなってしまう可能性があります。
|
【参考】 47都道府県のうち、4文字となるのは「神奈川県」「和歌山県」「鹿児島県」の3県だけということに着目し、それ以外は左端から3文字抽出するような数式となれば良いため、下図(赤枠)のような数式であれば例外なく47都道府県を抽出することができます。
|
生成AIは「単純な関数」や「よくあるパターン」には強いものの、Excel特有の仕様理解や複雑な条件の組み合わせが必要な場面では誤りやすい性質が今のところあります(※将来的に解消される可能性もあります)。特に、「複雑なネスト」「端数処理」「動的参照」「非公式関数」などを苦手とする傾向があります。そのため、AIが生成した数式は必ずヒトの手で確認・検証する必要があります。生成された数式に誤りがないことを判断できるだけの知識や理解がない場合は、むやみやたらに利用することは避けるべきと言えます。
加えて、情報セキュリティやプライバシー保護の観点から、実際の業務上の機密データを含むExcelファイルをAIツールにアップロードしたり、機密データを直接入力して質問したりすることは、情報漏洩に繋がる恐れがあるため行わないようにしてください。質問する際は汎用的な例や架空のデータで行うことを推奨します。








