担当者ごとの件数を COUNTIF で数えたら、どう見ても「田中」さんの行が3つあるのに、答えが「1」になる。こんなときに疑ってほしいのが、名前の前や後ろに紛れ込んだ「見えないスペース」です。
■ どんなときに起きるか
ほかのシステムから書き出したデータや、人によって入力の仕方が違う名簿では、「田中 」(後ろに半角スペース)や「 田中」(前にスペース)、「田中 」(後ろに全角スペース)が混ざりがちです。画面ではどれも「田中」に見えますが、関数にとっては別の文字列です。
たとえば A列に次の5行があるとします(B列は金額)。
- 田中(1,000円)
- 田中+後ろに半角スペース(2,000円)
- 佐藤(3,000円)
- 前に半角スペース+田中(4,000円)
- 田中+後ろに全角スペース(5,000円)
ここで =COUNTIF(A2:A6,"田中") は 1、=SUMIF(A2:A6,"田中",B2:B6) は 1,000 になります。本当は田中さんの分は4行・12,000円です。
■ 見つけ方:LENで文字数を見る
いちばん手軽なのは、隣の列に =LEN(A2) と入れて下へコピーすることです。「田中」なら 2 のはずなのに 3 と出た行には、何か余分な文字が入っています。
もう少しはっきり印をつけたいときは、次の式が使えます。
=A2<>TRIM(SUBSTITUTE(A2," "," "))
余分なスペースがある行だけ TRUE になります。フィルタで TRUE の行だけ出せば、直す行の一覧になります。
■ 直し方:作業列で TRIM する
元のデータを書き換えずに直すなら、作業列に
=TRIM(SUBSTITUTE(A2," "," "))
と入れて、集計はこの列を使います。SUBSTITUTE で全角スペースを半角に置き換えてから、TRIM で前後のスペースを取る、という2段構えです。
作業列(G列とします)で数え直すと、=COUNTIF(G2:G6,"田中") は 4、=SUMIF(G2:G6,"田中",B2:B6) は 12,000 になりました。
■ 気をつけること
- TRIM は文字の間のスペースを1つに縮めます。「田中 太郎」のように姓と名の間のスペースは1つ残るので、名簿の書き方そのものを揃える必要がある場合は別に考えます
- 全角スペースを TRIM だけで取れるかどうかは、ソフトや設定によって違うことがあります。迷ったら上のように SUBSTITUTE で半角にしてから TRIM する形にしておくと安心です
- 今回の式は、Python の計算ライブラリ(formulas)で見本のファイルを計算させて、上の数字(1・1,000・4・12,000、LEN の 2 と 3)になることを確かめました。Excel や Google スプレッドシートの画面そのものでは確かめていません。特に全角スペースの扱いは、お使いのソフトで1行だけ試してから全体に広げてください
■ おわりに
「数が合わない」ときは、関数の書き方より先にデータの中身を疑うと、早く原因にたどり着けることが多いです。LEN で文字数を見る、のひと手間を覚えておくと便利です。
集計の式づくりや、数が合わない原因探しを1つだけ頼みたい方向けに、「スプレッドシート関数・GASを1つお作りします」という出品をしています。動かして確かめてからお渡しします。
※この記事は、生成AI(Claude)を使って下書きし、式は手元で計算して確かめてから公開しています。