エラーはゼロなのに合計が4万円ズレた|Excelの「備考」列が途中から別物になっていた話と、境目の見つけ方・直し方

初心者シリーズ

こんにちは。実務Excel研究員です。

月末の締め作業が終わりかけた金曜の夕方、経理の方から一本の内線が入りました。

「支払い一覧の”確認済み”の合計と、支払い総額の差が大きすぎませんか? 42,600円、どこに消えたんでしょう」

その一覧は、隣の席の後輩が前任者から引き継いだファイルでした。日付・品目・金額・備考の4列。行数は1,184行。SUMIF関数で「備考が”確認済み”の行だけ」を合計する仕組みで、数式そのものは何度見ても正しい形をしていました。エラー表示もありません。

それでも数字が合わない。二人で「備考」列を上からスクロールしていくと、774行目あたりで様子が変わりました。それまで「確認済み」「未確認」と並んでいたセルに、急に「田中」「佐藤」「田中」……と、担当者の名前が入り始めたのです。

後輩に聞くと、「え、備考って担当者を書く欄じゃないんですか?」。前任者のルールは、引き継ぎメモのどこにも書かれていませんでした。

同じ列名のまま、途中から中身の「意味」が入れ替わっていた。今回の研究テーマはこの現象です。

この記事では、あの日に実際にたどった調査の順番どおりに、

  • 列の意味が変わっているかを30秒で確かめる方法
  • どの行から変わったのか、「境目」を特定する方法
  • 混ざった列を安全に2列へ分ける手順
  • 二度と起こさないための仕掛け

を順番に書いていきます。途中でつまずきやすい点も、そのつど補足します。


先に結論:Excelは「列の意味」を見ていない

最初に押さえておきたいのは、Excelが列を区別する手がかりは見出しの文字だけ、ということです。

「備考」という見出しの下に、確認状況が入っていようが担当者名が入っていようが、Excelにとってはどちらも「備考列の文字列」にすぎません。だから警告も出ないし、SUMIFも普通に動きます。「”確認済み”に一致する行」をきちんと探して、きちんと合計してくれます。

問題は、774行目以降の412行には、そもそも確認状況が一文字も入っていなかったことです。本来なら「確認済み」と書かれるはずだった支払いが、担当者名に置き換わっていたため、SUMIFの対象から静かに外れていました。その合計が42,600円でした。

つまり、数式は正しいのに答えだけが間違う。エラーが出ないぶん、気づくのは「誰かが違和感を持ったとき」だけです。今回はたまたま経理の方が差額に気づいてくれましたが、気づかれないまま数ヶ月続くことも珍しくありません。


調査1:その列に何種類の値があるかを30秒で数える

「列の意味が変わっていないか」を確かめる一番手っ取り早い方法は、列に入っている値の種類を一覧で見ることです。関数を使わない方法から順に紹介します。

フィルターのドロップダウンを開くだけ

表のどこかを選んで[データ]タブ→[フィルター]をオンにし、疑わしい列の見出しにある▼をクリックします。チェックボックスの一覧に、その列に入っている値が重複なしで並びます。

あの日の「備考」列を開くと、次のように表示されました。

  • (空白セル)
  • 確認済み
  • 佐藤
  • 田中
  • 未確認
  • 山本

確認状況を書く欄に人の名前が3つ並んでいる。この時点で「意味が2種類ある」ことはほぼ確定です。所要時間は本当に30秒ほどでした。

ステータスバーで「件数のズレ」を見る

もうひとつ、列を選ぶだけでできる確認があります。列全体を選択すると、画面右下のステータスバーに「データの個数」が表示されます。これを表の行数と見比べます。

さらに数値の列であれば「合計」「平均」も同時に出るので、数値列のはずなのに合計が極端に小さい、あるいは表示されない場合は、文字列が紛れ込んでいるサインになります。見た目は数字なのに文字として入っているケースについては、SUM関数が計算されない一番多い原因「数字の文字列化」の見分け方で詳しく扱っています。

SUM関数が計算されない一番多い原因は「数字の文字列化」|見分け方と直し方
SUM関数の合計が0になる、一部しか計算されない――実はその原因の多くは「数字が文字列になっている」ことです。見分け方4つと状況別の直し方を、実務目線で具体的に解説します。

Microsoft 365ならUNIQUE関数で一覧化

Microsoft 365やExcel 2021以降を使っている場合は、空いているセルに次の式を入れると、値の一覧がそのまま書き出されます。

=UNIQUE(D2:D1185)

フィルターの一覧と中身は同じですが、セルに書き出せるので、印刷して前任者に確認してもらうときなどに便利でした。


調査2:意味が変わった「境目の行」を特定する

混在していることがわかったら、次は「何行目から変わったのか」を突き止めます。ここを飛ばしていきなり直し始めると、どこまでが正しいデータなのか判断できなくなり、修正作業のほうで二次被害が出ます。

補助列で「種類」を判定する

表の右側、空いているE列に次の式を入れて、最終行までコピーします。

=IF(OR(D2="確認済み",D2="未確認"),"確認状況",IF(D2="","空白","その他"))

備考が「確認済み」か「未確認」なら「確認状況」、空なら「空白」、それ以外(担当者名など)は「その他」と表示されます。この列でフィルターをかければ、「その他」の行だけを一瞬で抜き出せます。

種類が切り替わった行に目印をつける

さらに隣のF列に、次の式を入れます(2行目は見出し行と比べることになるので、3行目から入れてください)。

=IF(E3<>E2,"←切り替わり","")

すぐ上の行と種類が違うときだけ「←切り替わり」と表示されます。あの日の表では、この目印が774行目にひとつだけ立ちました。もし目印が何十か所にもバラバラに立つようなら、「ある時点で切り替わった」のではなく「人によって使い方が違う」タイプの混在だと判断できます。直し方も変わってくるので、この見極めは意外と大事です。

日付と突き合わせて「いつから」を確定する

774行目の日付を見ると、7月3日でした。後輩がこのファイルを引き継いだのが7月1日。原因は、担当交代のタイミングで使い方が変わったことだと、ここでようやく裏が取れました。


そもそも、なぜ列の意味は変わってしまうのか

後輩の件以外にも、これまで職場で見てきた「列の意味が途中で変わった表」を振り返ると、きっかけは大きく3つに分かれます。

空いている列を「ちょっとだけ」借りる 使っていない列を見つけて、一時的なメモ置き場にする。本人は仮のつもりでも、元に戻す人がいないまま定着します。

担当者が替わる 今回のケースです。前任者の頭の中にだけあったルールが引き継がれず、後任者が見出しの文字から「たぶんこういう欄だろう」と推測して使い始めます。「備考」「その他」「メモ」のような広い意味の見出しほど、推測が外れやすくなります。

「今月だけ」が続く 特別な事情で一時的に別の情報を入れ、翌月も、その次の月も続いていく。半年たつと、誰も最初の使い方を覚えていません。

どれも悪意はなく、その場では合理的な判断です。だからこそ、仕組みで防がないと何度でも起きます。


放っておくとどこまで被害が広がるか

列の意味が混ざった表は、SUMIFだけでなく、その列を参照しているあらゆる作業に影響します。あの日、後輩のファイルで実際に確かめた範囲を表にしました。

使っていた機能起きていたこと気づいたきっかけ
SUMIF(確認済み合計)担当者名の412行が集計から外れ、42,600円少なく出ていた経理の方が総額との差に気づいた
COUNTIF(未確認件数)「未確認」が0件と出ていたが、実際は確認状況そのものが空だった調査中に数え直して判明
フィルター(未確認の抽出)7月以降の行が一件も出てこず、「全部確認済み」と誤解していた補助列を作ってから発覚
引き継ぎどの支払いが本当に確認済みか、7月以降分は誰にも判断できなかった前任者に連絡して確認

特に怖かったのは2行目と3行目です。「未確認は0件です」という答えは、一見すると良い知らせに見えます。実際は「確認したかどうかの記録がない」だけなのに、数字が安心材料として働いてしまっていました。

条件付きで平均を出すAVERAGEIFも同じ弱点を持っています。平均値が感覚とズレるときの考え方は、AVERAGE関数の使い方と注意点にまとめています。

AVERAGE関数の使い方と平均を求める時の注意点まとめ
AVERAGE関数の平均が実感と合わないのは、空白と0の扱いの違いが原因かもしれません。基本の書き方からCOUNTでの検算、AVERAGEIF・AVERAGEIFSの引数の順番、AVERAGEAの誤解、MEDIAN・TRIMMEANの使い分けまで実務目線で解説します。

また、今回のような「意味」の混在とよく似たものに、数値・文字列・日付が一つの列に混ざる「形式」の混在があります。原因の探し方が一部共通するので、列ごとにデータ形式が違うと集計できない原因と直し方もあわせて読んでおくと、見落としが減ります。

3人で入力した在庫表、原因探しに丸一日|Excelで同じ列に数値・文字列・日付が混ざったときの見分け方と直し方
Excelで同じ列に数値・文字列・日付が混ざると、SUMの合計不足やVLOOKUPの#N/Aが起きます。3人で入力した在庫表で丸一日悩んだ経験から、数えて見つける方法と列の役割別の直し方を解説します。

修復作業:混ざった1列を2列に分ける手順

境目がわかったら、いよいよ直します。やることは「1列に同居している2つの意味を、別々の列に引っ越しさせる」です。あの日、後輩と実際にやった手順をそのまま書きます。

手順1:ファイルを丸ごとコピーしておく

最初に必ず、ファイルを別名で保存します。1,184行を触る作業なので、途中で式を間違えても戻れるようにしておきます。地味ですが、ここを省いて痛い目を見た経験が私にはあります。

手順2:新しい列を2本作る

D列(備考)の右に列を2本挿入し、見出しをそれぞれ「確認状況」「担当者」とします。見出しは後で説明しますが、できるだけ具体的に書きます。

手順3:式で振り分ける

「確認状況」列の2行目に次の式を入れます。

=IF(OR(D2="確認済み",D2="未確認"),D2,"")

「担当者」列の2行目には次の式です。

=IF(OR(D2="確認済み",D2="未確認",D2=""),"",D2)

どちらも最終行までコピーすると、確認状況は左の列へ、担当者名は右の列へと振り分けられます。

手順4:値に置き換えてから元の列を消す

2本の列をまとめて選択してコピーし、同じ場所に[形式を選択して貼り付け]→[値]で貼り付けます。こうしておかないと、元の「備考」列を削除した瞬間に式が参照先を失い、すべて「#REF!」になってしまいます。値に置き換えたことを確認してから、元の「備考」列と、調査用に作った補助列を削除します。

手順5:空いた確認状況を「要確認」で埋める

ここが一番見落としやすいところです。7月以降の412行は、振り分け後の「確認状況」列が空白になります。空白のまま残すと、また「未確認0件」と誤解される原因になるので、フィルターで空白だけを抜き出し、「要確認」と入力して一括で埋めました。

そのうえで、後輩が請求書の控えと突き合わせ、412行のうち398行を「確認済み」、14行を「未確認」に更新しました。ここまでの作業時間は、二人でおよそ3時間です。SUMIFの合計は総額とぴったり一致しました。


再発防止:「使い方」を表そのものに埋め込む

直して終わりにすると、次の担当交代でまた同じことが起きます。あの日以降、後輩のファイルには次の4つの仕掛けを入れました。

見出しに「何を入れる列か」まで書く

「備考」をやめて「確認状況(確認済み/未確認)」「担当者」としました。見出しが少し長くなりますが、何を入れる列なのかが一目でわかれば、別の用途で使おうとしたときに手が止まります。見出しの文字は、未来の担当者への一番短い引き継ぎメモです。

入力規則でリストから選ばせる

「確認状況」列を選び、[データ]タブ→[データの入力規則]で、入力値の種類を「リスト」、元の値に「確認済み,未確認,要確認」と入れました。これで、この列には3種類の言葉しか入らなくなります。担当者名を打とうとした瞬間にエラーメッセージが出るので、混在はその場で止まります。

見出しセルにメモを残す

見出しセルを右クリックして[新しいメモ](古いバージョンでは[コメントの挿入])を選び、「支払い前に請求書と照合した結果を入れる列。担当者名は右隣の列へ」と書きました。マウスを乗せるだけで説明が出るので、引き継ぎ資料を探す手間もかかりません。

四半期ごとに15分の「列の棚卸し」をする

最後は人の習慣です。3か月に一度、調査1で紹介したフィルターの一覧を全列ぶん開いて、想定外の値が混ざっていないかを見る。全部で15分もかかりません。担当交代や年度替わりの直後は、特に丁寧に見ます。

なお、見出しを具体的にしていく過程で「氏名」「氏名2」のように同じ意味の列が増えてしまうと、今度は別の混乱が起きます。列を増やすときの判断基準は、同じ項目の列が複数あると集計がズレる原因と直し方で整理しています。

合計は合っているのに1万8,640円足りない|「金額(修正後)」列が3週間バレなかった理由と、重複列の安全な片付け方
Excelで「金額」「金額(修正後)」のような重複列があると、エラーなしで集計がズレます。実際に18,640円合わなかった事例から、本物の列の見極め方と3列を1列にまとめる手順を解説します。

よくある質問

Q. 列を増やすと表が横に長くなって見づらいのですが、1列にまとめたままではダメですか?

A. 見やすさより「あとで正しく集計できるか」を優先したほうが、結局は手間が減ります。今回も、1列にまとめておいたせいで3時間の修復作業が発生しました。見づらさは、列の幅を詰める、使わない列をグループ化して折りたたむ、といった方法で対処できます。ただし見た目を整えるために空白の列を挟むのは逆効果です。理由は空白列を入れると集計がズレる理由と直し方で説明しています。

売上順に並び替えたら利益だけ動かない|Excelの空白列が表を真っ二つにする理由と直し方
Excelで並び替えたら一部の列だけ動かない原因は空白列かもしれません。Ctrl+Aでの確認方法、削除前に見る2点、消せない表の応急処置まで、48件の表を崩した実体験をもとに解説します。

Q. 境目が一か所ではなく、あちこちでバラバラに切り替わっていました。どうすれば?

A. 調査2の目印が何十か所にも立つ場合は、「時期」ではなく「入力した人」で使い方が分かれている可能性が高いです。その場合は補助列の判定結果(「確認状況」か「その他」か)をもとに振り分ければ、手順3の式はそのまま使えます。境目の行番号にこだわる必要はありません。

Q. 担当者名なのか確認状況なのか、値だけでは判断できないセルがありました。

A. 無理に推測で振り分けず、「要確認」として残すのが安全です。今回も「済」とだけ書かれたセルが6件ありました。確認済みの意味なのか、別の略語なのか判断できなかったので、前任者に問い合わせてから埋めました。


研究員メモ:私も一度、同じ穴に落ちています

偉そうに書いてきましたが、実は私自身も、まったく同じ形のミスをしたことがあります。

以前担当していた在庫表で、「備考」列を入荷予定日のメモとして使っていました。異動で後任に引き継いだとき、そのルールを口頭で伝えただけで、どこにも書き残しませんでした。後任の方は備考欄を「取引先への連絡事項」として使い始め、8か月後、在庫の見込みが合わないと相談されたときには、約600行が二つの意味で入り混じっていました。

どこからが入荷予定日で、どこからが連絡事項なのか。自分で作った表なのに、もう自分でも判断がつきませんでした。見出しに「入荷予定日」と一言書いておけば防げたミスです。

Excelのファイルは、作った人の手を離れた瞬間から、意図が少しずつ抜け落ちていきます。見出しの一言、入力規則の一設定。そのわずかな手間が、半年後の誰かの3時間を救います。後輩の件を手伝いながら、あのときの自分に言い聞かせているような気分でした。


この記事の要点

段階やること目安時間
気づくフィルターの▼で値の一覧を見る/ステータスバーで件数を比べる30秒
特定する補助列で種類を判定し、切り替わった行に目印をつける10分
直すコピーを取り、2列に振り分け、値貼り付け後に元列を削除。空白は「要確認」で埋める行数による(今回は約3時間)
防ぐ具体的な見出し・入力規則・見出しのメモ・四半期ごとの棚卸し棚卸しは1回15分

列の意味の混在は、エラーを出さないまま数字だけを狂わせます。「最近なんとなく集計が合わない」と感じたら、数式を疑う前に、まず列の中身の種類を数えてみてください。


あわせて読みたい、表の設計でつまずきやすいポイント

列の意味の混在と同じく、「エラーは出ないのに集計がおかしい」タイプのミスは他にもあります。気になるものから確認してみてください。

見た目は同じ「100」なのに合計が合わない|Excelで数値の形式がバラバラなときの見分け方と直し方
ExcelでSUMの合計やVLOOKUPの結果が合わない原因は、数値の形式の不統一かもしれません。文字の数字・全角数字・隠れ小数の見分け方から、ステータスバーやジャンプ機能での特定方法、区切り位置・VALUE関数・乗算貼り付けでの直し方まで初心者向けに解説します。
合計は合っているのに1万8,640円足りない|「金額(修正後)」列が3週間バレなかった理由と、重複列の安全な片付け方
Excelで「金額」「金額(修正後)」のような重複列があると、エラーなしで集計がズレます。実際に18,640円合わなかった事例から、本物の列の見極め方と3列を1列にまとめる手順を解説します。
Excel関数の選び方がわかる|目的別によく使う関数の見つけ方
SUM・IF・VLOOKUPだけでなく、COUNTIFS・XLOOKUP・TEXTJOINまで。実務でよく使うExcel関数を目的別に整理し、選び方の地図としてまとめました。エラーが出ないのに結果が違う"静かな間違い"の落とし穴も解説します。

「意味の混在」と「形式の混在」が同じ表の中で同時に起きているようなケースでは、どちらから直すかで手戻りの量が変わります。8種類の問題が重なった表を実際に診断して直した例と、直す順番の考え方はnoteでまとめています。1本の記事では扱いきれなかった応用編に興味がある方は、こちらからどうぞ → 表の健康診断12項目と、問題が重なった表の直し方(note)

コメント

タイトルとURLをコピーしました