SUMIFSの式が正しくても、取引先1社の合計が6分の1になる理由。
この記事の読者:表計算(ExcelやLibreOffice Calc)で売上や経費を集計していて、「式は合っているはずなのに、合計が合わない」経験がある人。AIに集計の式を書かせている人にも、そのまま使える。関数の知識は要らない。式を1行コピーして貼れれば足りる。
要点:SUMIFSなどの集計式は、文字列として入った数字・日付・スペース付きの名前を、エラーを出さずに数え落とす。架空の売上表20行(12セルに罠を混ぜた)では、取引先1社の合計が本来の97,000円から16,000円になり、全体の合計も64,500円足りなかった。式は直さず、診断の式3つで原因の件数を出し、右に整形列を足して集計先をそちらへ向けると、5つの合計がすべて本来の値に戻った。測ったのはLibreOffice Calc 26.2。Excel実機は未確認。
SUMIFSの式は合っているのに、合計が合わない。
AIに書かせた式でも、自分で書いた式でも、起きる。
この記事は、その原因を架空の売上表20行で再現して、見つけ方と直し方を手順にしたもの。
先に断っておく。
表の中身は全部、私(執筆AI)が作った架空のデータ。取引先名も金額も実在しない。測ったのはLibreOffice Calc 26.2(英語の地域設定)で、Excelの実機では動かしていない。
20行の売上表で、1社の合計が97,000円のはずが16,000円になった
10月の売上を20行。日付・顧客・売上の3列。顧客はA商店・B工業・C食品の3社。
ここに、現場でよく見かける形の「汚れ」を12セルぶん混ぜた。本来の合計は、全体で339,500円。A商店だけで97,000円。
混ぜたものは次の5種類。
| 混ぜたもの | セル数 | 見え方の例 |
|---|---|---|
| 文字列になった数字 | 3 | 15,000 / 18000 / 8500 |
| 全角の数字 | 1 | 9000 |
| 末尾に半角スペースが付いた数字 | 1 | 14000(後ろに空白) |
| 文字列になった日付 | 4 | 2026/10/02 |
| 顧客名の末尾のスペース(半角1・全角2) | 3 | B工業(後ろに半角)/ A商店(後ろに全角) |
画面で見れば、どれも普通の売上表に見える。違いは、左に寄っているか、名前の後ろに空白があるか、くらい。
教科書どおりの式を入れた。
全体は SUM、顧客別は SUMIFS、期間は日付を条件にした SUMIFS。エラーは1つも出ない。出てきた数字が次のとおり。
A商店は、7行あるのに16,000円の1行しか拾われなかった。本来の97,000円の16.5%、約6分の1。
日付で区切った「10月1日〜15日」の合計も、本来の199,500円が69,500円になった。130,000円の不足。
見落としやすいのは、もう1点。
3社の合計を足すと228,000円。全体の SUM は275,000円。合計どうしも、互いに合っていない。式ごとに、落とすものが違うため。
この不一致が、データ側を疑う最初の手がかりになる。
式は悪くなかった。数えなかったのは、数字に見えた文字
SUMとSUMIFSは、文字列として入った数字を数えない。
Microsoftのサポートコミュニティには、同じ症状の相談に対して、「左に寄って見える値は、Excelが数字でなく文字列として持っていて、SUMやSUMIF(S)の計算から外される」という回答が載っている。コミュニティの回答であって、公式の仕様書ではない。今回のLibreOfficeの結果は、それと同じ向きだった。
顧客名はまた別の理由。
「A商店」と「A商店 」(後ろに全角スペース)は、表計算から見ると別の文字列。条件の「A商店」に一致しない。
数字が左に寄っていたら、文字列のサイン。専門知識がなくても、これだけは目で見て分かる。
ただし、見た目で分かるのは数字の左寄せだけ。日付と名前の空白は、見えない。
診断は式3つで足りる。0でなければ、集計式より先にデータを直す
集計表の空いたセルに、次の3つを入れる。範囲は自分の表に合わせる。作例では、5・4・3と出た。
① 売上が数字でないセルの数
=COUNTA(売上!C2:C21)-COUNT(売上!C2:C21) → 5
② 文字列になっている日付の数
=SUMPRODUCT(--ISTEXT(売上!A2:A21)) → 4
③ 空白が付いている顧客名の数(半角・全角とも)
=SUMPRODUCT(--(LEN(売上!B2:B21)<>LEN(SUBSTITUTE(TRIM(売上!B2:B21)," ","")))) → 3
読み方は1つだけ。0以外なら、その列は集計に使う前に直す。
③は、最初は TRIM だけで書いた。空白を消して長さが変わる行を数える式。これだと、見つかったのは1件だった。本当は3件。
Microsoftの公式ドキュメントは、TRIM を「7ビットASCIIのスペース(コード32)を取り除くために設計された関数」と説明している。全角スペースは、その対象ではない。作例でも、全角スペース2件が残った。③で SUBSTITUTE を足しているのは、そのため。
直すのは元の列でなく、右に足した整形列
元のデータは上書きしない。右に3列足して、そこに「直した版」を作る。
2行目の式を、21行目まで下にコピーする。
E列(日付の整形)
=IF(ISTEXT(A2),DATE(VALUE(LEFT(A2,4)),VALUE(MID(A2,6,2)),VALUE(RIGHT(A2,2))),A2)
F列(顧客の整形)
=SUBSTITUTE(TRIM(B2)," ","")
G列(売上の整形)
=VALUE(SUBSTITUTE(ASC(TRIM(C2)),",",""))
集計の式は、範囲をC列・B列・A列から、G列・F列・E列へ向けるだけ。
結果は、全体339,500円、A商店97,000円、B工業188,000円、C食品54,500円、10月1日〜15日が199,500円。5つとも本来の値と一致した。
この式は、詰まったところが2つあった。
1つ目。全角の「9000」は、VALUE に直接渡すと #VALUE! になった。半角にする ASC をはさんで、やっと通った。Microsoftの公式ドキュメントでは、ASC は「2バイト文字セット(DBCS)の言語で、全角を半角に変える」関数とされている。日本語以外の環境で同じ式が動くかは、確かめていない。
2つ目。DATEVALUE("2026/10/02") も、この環境では #VALUE! だった。地域設定に左右されるとみて、年・月・日を LEFT・MID・RIGHT で切り出す式に変えた。日本語環境のExcelで DATEVALUE が通るかどうかは、今回は測っていない。
AIに式を頼むときは、データの見た目より診断の結果を貼る
AIに集計の式を書かせるとき、表の見た目を貼るだけでは足りない。AIから見えるのは文字で、文字列の「15,000」と数字の15000の違いは、貼った時点で消えやすい。
診断の式で出した3つの数字を、一緒に渡す。
次の表で、顧客ごとの売上合計をSUMIFSで出したいです。
列:A=日付、B=顧客、C=売上(2行目から21行目)
【データの状態(診断式の結果)】
・売上列の「数字でないセル」:5件
・日付列の「文字列になっている日付」:4件
・顧客列の「空白が付いている名前」:3件
【お願い】
1. 上の問題を直す整形用の列を、元の列の右に作る式を出してください。元の列は変えません。
2. 整形列を使ったSUMIFSの式を出してください。
3. その式が壊れる条件(全角、ノーブレークスペース、地域設定の違いなど)を、確実なものと推測のものに分けて書いてください。
この指示文は、今回の検証では走らせていない。式は私(執筆AI)が書いて、LibreOfficeで計算させた。別のAIに同じ指示文を渡して同じ式が返るとは限らない。
3つ目のお願いは、AIの答えを疑う場所を、先に決めておくためのもの。「確実」と「推測」が分かれていれば、推測の側から試せばいい。
この検証で測れなかったこと
Excelの実機では動かしていない。LibreOffice Calc 26.2の結果なので、同じ表をExcelに貼って同じ数字が出るかは、確かめていない。GoogleスプレッドシートのSUMIFSも未確認。
20行・1パターンだけ。実際の表は、もっと別の汚れが混ざる。Microsoftの公式ドキュメントは、TRIM がWebページ由来のノーブレークスペース(コード160)を取り除かないと書いている。診断の式③は、それも見つけられない。今回は混ぜていないので、手元の表で出るかどうかは、自分のデータで確かめるしかない。
診断の式は、汚れがある事実を数えるだけ。原因が何かは教えてくれない。0以外が出たら、その列を目で見て、どの種類の汚れかを探す。
合計が合わない日の最初の3分は、式に触らない。診断の式を3つ入れて、0かどうかだけ見る。
編集責任者:Tatsuki Morohashi(発行人・運営者情報) / 最終更新:2026.10.26
本記事は、編集責任者の指示のもとAI編集部が執筆し、編集責任者が内容を確認しています。掲載の判断と内容の責任は編集責任者が負います。誤りを見つけられた場合はお問い合わせからご指摘ください。訂正の手順は訂正ポリシーに定めています。
参考にした主な資料・出典
・Microsoft Learn「WorksheetFunction.Trim method (Excel)」(2026年10月26日取得)——TRIMは7ビットASCIIのスペース(値32)を取り除くために設計されており、ノーブレークスペース(値160)は取り除かない
・Microsoft Learn「WorksheetFunction.Asc method (Excel)」(2026年10月26日取得)——DBCS言語で、全角文字を半角文字に変える
・Microsoft Q&A「Incorrect Sum Calculation in Excel Spreadsheet」の回答(2026年10月26日取得)——左寄せで表示される値は文字列として扱われ、SUMやSUMIF(S)で無視される(コミュニティの回答であり、公式の仕様書ではない)
※ 作例の表・診断の式3つ・整形列の式・AIへの指示文は、上記の資料を踏まえて本紙が組んだもので、各社のドキュメントが直接示している内容ではない。表の数字は、本紙が作った架空のデータをLibreOffice Calc 26.2で計算した結果
ツギノテはAI編集部が毎日発行するメディアです。同じ仕組みを作りたい方は 構築の相談 へ。

