【2025年9月】
セルに入力して正常に動作している数式は「この数式を説明してください」で解説してくれます。
もし、数式がエラーになっていたら「このエラーを説明して修正を提案してください」が使えます。
とはいえ実務では、もうひとつ「エラーにはなっていないけど、何か結果がおかしい」という数式もあります。逆に、よくあります。そんなとき「ここを、こうしたらいいよ」と提案してくれたら、おそらくAIのことを惚れ直すに違いありません。
合計が0ってことはないでしょ。なんか変です。まずは「この数式を説明してください」を実行してみます。
この数式 =SUM(B2:B6) は、範囲B2からB6に入力されている「数値」列の値を合計します。 • B2:B6の範囲には、それぞれ100、200、300、400、500という数値が入力されています。 • SUM関数は、指定した範囲内のすべての数値を合計します。 • この場合、100 + 200 + 300 + 400 + 500 の合計(=1500)が計算されます。 • 結果はセルB7に表示されます。
ですよね~でも、なぜか0なんですわ。ここは、やっぱAIさんに質問してみるしかないですね。
セルB7に入力した「=SUM(B2:B6)」が、正しい結果を返しません。理由と対処法を教えてください。
セルB7の「=SUM(B2:B6)」が正しい結果(合計1500)を返していない理由は、B2:B6の値が 「数値」ではなく「文字列」として入力されているためです。Excelでは、文字列の 「100」「200」などは合計の対象になりません。 【対処法】 B2~B6の値を「数値」として再入力します(例:100 → 100)。 または、各セルを選択し、セルの書式設定を「標準」または「数値」に変更し、 再度値を入力してください。 これで、B7の合計が正しく表示されます。
正解です。上図のセル範囲B2:B6は、セルの表示形式を"文字列"にして入力し、横の配置を"右揃え"にしました。確かに文字列として入力してあります。揚げ足を取るつもりはありませんが「Excelでは...対象になりません」というのは、ちょっと曖昧な表現です。下図のようにすれば、文字列形式であっても計算できます。
「Excelで」できないんじゃなくて「SUM関数は」できないんですよね。本当は、そう言いたかったんですよね。分かります。
VLOOKUP関数の結果が変です。まぁ、これも理由は明らかですね。
セルB2には「=VLOOKUP(A2,$D$2:$E$7,2)」という数式を入力し、セルB5までコピーしました。計算の結果がおかしいです。理由と対処法を教えてください。
原因: 数式「=VLOOKUP(A2,$D$2:$E$7,2)」には「範囲指定の第4引数(検索方法)」が省略されています。 省略時は「TRUE(近似一致)」となり、完全一致で検索されません。 そのため、A列の名前がD列に正確に存在しない場合や、D列が昇順に並んでいない場合、 誤った値が返されます。 対処法: 第4引数に「FALSE」を追加し、完全一致で検索してください。 修正版(B2セル): =VLOOKUP(A2,$D$2:$E$7,2,FALSE) この数式をB5までコピーしてください。
これも簡単でしたね。でも「エラーにはなっていないけど、何か結果がおかしい」数式も、ちゃんと理由と対処法を教えてくれますね。これは助かります。
今度のは、ちょっと難しいですよ。
セルE2に「=FILTER(A2:C10,A2:A10="田中")」という数式を入力しました。セル範囲A2:A10に"田中"は3件あるのに、計算結果は2件しか表示されません。理由と対処法を教えてください。
A2:A10の中に「田中」と「田中 」(末尾にスペースあり)が混在しているため、 =FILTER(A2:C10,A2:A10="田中")では完全一致の「田中」しか抽出されません。 A5セルは「田中 」となっており、スペースが原因で一致しません。 対処法: スペースを無視して抽出するには、TRIM関数を使って比較してください。 修正版の数式(E2セル): =FILTER(A2:C10,TRIM(A2:A10)="田中") この数式で、余分なスペースがあっても「田中」と一致するすべての行が抽出されます。
おお、すげぇ、そこまで見抜くんだ。てっきり、数式は合ってるからと、考えられる可能性を列挙してくるかと思いました。いや、甘く見ていてすみません。今日の中の人(数式担当さん)は、ひと味違いますね~ しかも、対処法にTRIM関数をチョイスするあたりも、お見事です。ヘタにワイルドカードとか使うと、いろんなパターンを想定しなくちゃだし、SUBSTITUTE関数で除去しようとしたら、今度は半角と全角や、スペースの個数問題がありますもんね。さすがです。
用意したのは、これが最後です。本当はもうひとつ、日付関係の例を作ったのですが、なぜかAIに質問すると途中で中断されます。なんどやっても同じでした。とりあえず、ある関数を使って、その対応策が配列数式になるときに中断されるということまでは判明したのですが、それ以上は面倒くさいのでやめます。もしかすると、AI側の不具合かもしれないので、そちらは日を改めて検証してみます。さて、最後のケースは、私が実際にやったミスです。詳しくは下記のページをご覧ください。
セル内の"半角カタカナ"だけを、関数を使って"全角カタカナ"に変換したかったんです。記号や数値は半角のままで。これ、もちろんJIS関数だけではできませんので、上図のようにLAMBDA関数を使いました。でも、結果がおかしいです。この数式には、2つの"考え違い"があります。もし、そこを的確に指定してくれて、さらに修正案まで提示してくれたら、私は泣きながら祝杯をあげたでしょう。
A列に入力されているデータのうち「半角カタカナ」だけを「全角カタカナ」に変換するため、B列に「=REDUCE("",MID(A2,SEQUENCE(LEN(A2)),1),LAMBDA(a,b,IF(REGEXTEST(b,"[ア-ン]"),a&JIS(b),a&b)))」のような数式を入れました。でも結果がおかしいです。うまくいかない理由と、正しく「半角カタカナ」だけを「全角カタカナ」に変換するための対処法を教えてください。
ご質問の数式がうまくいかない理由は、以下の通りです。 JIS関数の誤用:ExcelのJIS関数は「文字列を全角に変換」しますが、半角カタカナの濁点・ 半濁点や記号などは正しく変換されません。 正規表現の範囲不足:「[ア-ン]」では半角カタカナの一部しか判定できず、濁点・半濁点や記号 (゙, ゚, ー など)が漏れます。 複合文字の扱い:半角カタカナは「ガ」など2文字で1音を表す場合があり、1文字ずつ変換すると 正しく全角になりません。 正しい対処法: Excel標準関数のみで完全な変換は難しいですが、より正確に変換するには、 JIS関数を使い、A列の値全体を一括で変換します。 =JIS(A2) この式はA2の半角カタカナを全角カタカナに変換します(濁点・半濁点も含めて一括変換)。 B列にこの式を入れてください。 注意点: JIS関数は日本語環境でのみ動作します。 もし一部だけ変換したい場合や、細かい制御が必要な場合はVBAやPower Queryの利用を検討してください。 ご不明点があれば、さらに詳しくご説明します。
ああ、私はいま猛烈に感動しています。そのとおりです。
正規表現の範囲不足:「[ア-ン]」では半角カタカナの一部しか判定できず、濁点・半濁点や記号 (゙, ゚, ー など)が漏れます。 複合文字の扱い:半角カタカナは「ガ」など2文字で1音を表す場合があり、1文字ずつ変換すると 正しく全角になりません。
おっしゃるとおり、そこを間違えていました。素晴らしい!今度、一杯ごちそうさせてください。ちなみに、私が考えた修正は下図のとおりです。
実務では「正しい数式」と「エラーの数式」だけでなく、「エラーにはなっていないけど、何だか結果がおかしい数式」があります。そうした「結果がおかしい数式」に対して、結果がおかしい理由と、どうしたらいいかの修正案を提示してくれるのか、という検証でした。結果は素晴らしかったです。特に最後の「半角カタカナ→全角カタカナ」変換でのミスは、かなり正確な理解がないと指摘できません。新しく数式を作るだけでなく、既存の数式に関してもAIは役に立ちますね。検証結果には、たいへん満足しました。