売上順に並び替えたら利益だけ動かない|Excelの空白列が表を真っ二つにする理由と直し方

初心者シリーズ

事務の仕事を始めて2年目のころ、商品別の売上と利益をまとめた管理表を任されていました。商品は全部で48件。上司から「売上の多い順で出して」と言われ、売上のセルを選んで[降順]を押しました。

売上の列はきれいに並び替わりました。ところが、右にある利益の列が1ミリも動いていません。いちばん売れている商品の横に、まったく別の商品の利益が並んでいる状態です。しかも私はそれに気づかないまま上書き保存してファイルを閉じてしまい、Ctrl+Zでは戻せなくなりました。結局、元の伝票と1件ずつ突き合わせて直すことになり、48件を元に戻すのに3時間近くかかっています。

原因は、売上と利益のあいだに入れていた、たった1列の空白でした。「少し詰まって見えるから」と、見やすさのつもりで空けた列です。

この記事では、空白列があるとExcelの中で何が起きているのかを、実際の表で機能を1つずつ試しながら確かめていきます。そのうえで、空白列の見つけ方、消していい列かどうかの確認、消せないときの逃げ道まで順番にまとめました。

空白列が1本あると、Excelには表が2つに見えている

最初に、こんな表を思い浮かべてください。

商品名売上利益
ノート120,00036,000
ボールペン85,00034,000
ファイル210,00042,000
付箋64,00025,600
封筒150,00030,000

列がくっついていて少し窮屈なので、売上と利益のあいだに1列あけたくなります。

商品名売上利益
ノート120,00036,000
ボールペン85,00034,000
ファイル210,00042,000
付箋64,00025,600
封筒150,00030,000

人の目で見れば、どちらも「1つの表」です。むしろ下のほうが整って見えます。

ところがExcelは、表の範囲を見た目では判断していません。並び替えやフィルターのボタンを押した瞬間、Excelは選択中のセルから上下左右にデータをたどっていき、何も入っていない行か列にぶつかったところを「表の端」と決めます。この、空白の行と列で囲まれたひとかたまりを「アクティブセル領域」と呼びます。

つまり、空白列をはさんだ表は、Excelの中では「商品名と売上の表」と「利益の表」という、別々の2つの表として扱われています。あのときの私の表で利益が動かなかったのは、Excelの不具合ではありません。Excelが「利益は隣の別の表だから触らないでおこう」と律儀に判断した結果でした。

確かめるのは簡単です。表の中のセルを1つ選んで Ctrl+A を押してください。選択された範囲が、Excelが「1つの表」とみなしている範囲です。空白列の手前で選択が止まっていたら、そこで表が切れています。

行の方向でも同じことが起きます。行のあいだを空けた場合の症状は、見やすくするために空けた1行が並び替えと合計を狂わせるケースにまとめてあります。

並び替えが途中で止まる、合計がズレる。犯人は「見やすくするために空けた1行」でした
並び替えが途中で止まる、フィルターが効かない、合計が少ない原因は空白行かも。Ctrl+Aでの30秒診断、COUNTAを使った安全な削除手順、罫線で見やすさを残す方法を実務目線で解説。

空白列のある表で、よく使う機能を順番に試してみた

「表が切れる」と言われても、実際に何が困るのかはピンとこないかもしれません。そこで、さきほどの空白列入りの表に列番号と行番号を付けて、よく使う機能を順番に試してみます。C列がまるごと空白です。

ABCD
1商品名売上利益
2ノート120,00036,000
3ボールペン85,00034,000
4ファイル210,00042,000
5付箋64,00025,600
6封筒150,00030,000

並び替え:左半分だけが動く

B列のセルを1つ選んで、[データ]タブの[降順]を押します。結果はこうなりました。

ABCD
1商品名売上利益
2ファイル210,00036,000
3封筒150,00034,000
4ノート120,00042,000
5ボールペン85,00025,600
6付箋64,00030,000

商品名と売上は正しく並び替わっていますが、D列は元の順番のままです。ファイルの利益は本当は42,000円なのに、36,000円と表示されています。

怖いのは、エラーも警告も出ないことです。数字はどのセルにもきちんと入っているので、ぱっと見では壊れていることに気づけません。5件なら目で追えますが、48件、数百件となると、元の資料がなければ復元はほぼ無理です。

フィルター:▼が付かない列ができる

元の表に戻して、A1を選んで[フィルター]を押します。▼のボタンが付くのはA1とB1だけで、D1の「利益」には付きません。

ここは少し誤解されやすいところなので、実際に売上を「100,000以上」で絞ってみます。すると、ボールペンと付箋の行は、D列も含めて行ごと隠れます。フィルターは行全体を非表示にする仕組みなので、絞り込みだけなら一見ふつうに動いているように見えるわけです。

困るのは次の2点です。1つは、利益の列で絞り込みができないこと。もう1つは、▼のメニューから[降順]や[昇順]を選んだとき、さきほどの並び替えと同じく左半分だけが動くことです。「絞り込みは効いていたから大丈夫」と思い込んでいると、ここで表を壊します。

オートSUM:空白の手前で止まる

横方向に合計を出す表でも影響が出ます。たとえば「4月・5月・(空白列)・6月」と並んだ右に合計欄を作り、オートSUMのボタンを押すと、Excelが提案してくる範囲は空白列より右にある6月だけです。4月と5月は範囲に入りません。

Enterを押す前に点線の枠を見れば気づけますが、急いでいるとそのまま確定してしまいます。合計が妙に小さいときは、数式バーで範囲を確認してみてください。

テーブルとピボットテーブル:範囲が欠ける、またはエラーになる

Ctrl+T でテーブルにしようとすると、確認画面に表示される範囲は「$A$1:$B$6」です。そのままOKを押すと、利益の列はテーブルの外に取り残されます。

ピボットテーブルも同じで、自動で入る範囲はB列までです。フィールドの一覧に「利益」が出てこないので、そこでようやく気づくことになります。それなら、とA1からD6までを手で選び直して作ろうとすると、今度は「フィールド名が正しくありません」という趣旨のエラーが出て作成できません。C1に見出しがないためです。

グラフ:利益が出てこない

表の中のセルを1つ選んでグラフを挿入すると、描かれるのは売上の棒だけです。範囲を手で選び直せば利益も入りますが、空白列のぶんの空っぽの系列が凡例に混ざることがあり、あとから手作業で消すことになります。

結果を並べるとこうなる

機能空白列があるとどうなるか気づきやすさ
並び替え左側だけ動き、行の組み合わせが崩れる気づきにくい
フィルター右側の列に▼が付かない。▼からの並び替えで崩れる気づきにくい
オートSUM空白列の手前までしか合計しない見れば気づく
テーブル右側の列がテーブルに入らない確認画面で気づける
ピボットテーブル右側の項目が出ない、またはエラーになる気づく
グラフ右側のデータが描かれない気づく

こうして並べてみると、エラーが出て止まってくれるものはまだ親切で、何も言わずに結果だけ変わる並び替えがいちばん危ないとわかります。

ちなみに、Ctrl+A で全体を選んでコピーするときも、空白列の右側は置いていかれます。別のシートに貼ったあとで「利益の列がない」と気づく、というのも実務ではよくある話です。

空白列は見た目で3種類に分かれる

空白列と一口に言っても、現場で見かけるものには大きく3つの形があります。

1つ目は、ふつうの幅のまま何も入っていない列。これは見ればわかります。

2つ目は、幅を1〜2くらいまで細くして「仕切り線」のように使っている列です。前任者から引き継いだ表でよく見かけます。細いので列として認識しづらく、列番号がA、B、Dと飛んでいるように見えることもあります。見た目は線でも、Excelにとっては立派な空白列です。

3つ目は、何も入っていないうえに非表示にされている列です。非表示にしても「何も入っていない列」であることは変わらないので、表はそこで切れます。

逆に、まぎらわしいけれど空白列ではないものもあります。見出しだけ空いていて下にはデータがある列、スペースだけが入っている列、結果が空白になる数式が入っている列です。これらは表を分断しませんが、別の問題を起こします。スペースが悪さをするケースは、末尾の空白が原因でVLOOKUPが一致しないときでくわしく扱っています。

末尾の空白が原因でVLOOKUPが一致しない時の見分け方と直し方
ExcelでVLOOKUPが#N/Aになる、COUNTIFで数えられない原因は末尾の空白かもしれません。LEN関数・CODE関数での見分け方から、TRIM関数・置換・SUBSTITUTEの使い分け、TRIMで消えない空白への対処法まで初心者向けに解説します。

見つけ方① Ctrl+Shift+→ で端まで走らせる

見出し行のいちばん左のセル(今回ならA1)を選び、Ctrl+Shift+→ を押します。選択範囲は、データが続いているところまで一気に伸びます。表の右端まで届かずに途中で止まったら、その次の列が空白列です。

細い仕切り列や非表示の列は目では見つけにくいのですが、この方法なら位置がはっきりします。人から受け取ったファイルを触る前に、私はまずこれを1回やるようにしています。

見つけ方② 別シートでCOUNTAを横に並べる

列数が多い表では、新しいシートを1枚追加して、A1に次の式を入れます。

=COUNTA(Sheet1!A:A)

これを右方向にコピーすると、各列に入っているデータの個数が横一列に並びます。「0」になった列が、完全な空白列です。元の表と同じシートにこの式を書くと自分自身を数えにいってしまう(循環参照になる)ので、必ず別のシートに書いてください。

20列、30列ある表でも、0を探すだけなので数秒で終わります。

直し方は「消せる表」か「消せない表」かで変わる

消せる表の場合:削除の前に2つだけ確認する

自分で作った表なら、空白列は削除するのがいちばん確実です。列番号を右クリックして[削除]を選ぶだけですが、その前に確認しておきたいことが2つあります。

確認1:本当に下まで空か

見えている範囲が空でも、ずっと下の行に誰かの計算メモや古いデータが残っていることがあります。空白列のいちばん上のセル(C1)を選び、Ctrl+↓ を押してください。一気にシートの最終行(1,048,576行目)まで飛べば、その列は下まで空です。途中で止まったら、そこに何か入っています。

表のそばにメモを書く習慣がある職場では、とくに念入りに見ておきたいところです。メモの置き場所そのものについては、表の途中にメモを書くと集計がズレる理由を参考にしてください。

「※確認中」の1行が合計を狂わせる|Excelの表の途中に書いたメモの見つけ方と、消さずに移す手順
Excelの表の途中に「※確認中」と書くと、合計・並び替え・フィルター・ピボットが静かに狂います。メモ行をCOUNTで数える方法と、内容を消さずに備考列へ移す手順を実務目線で解説します。

確認2:その表を参照しているVLOOKUPがないか

これは見落としやすい落とし穴です。別のシートに、たとえばこんな式があったとします。

=VLOOKUP(G2,Sheet1!A:D,4,FALSE)

A列からD列の範囲の「4列目」、つまり利益を取り出す式です。ここでC列を削除すると、範囲は自動で A:C に縮みますが、「4」という列番号は書き換わりません。3列しかない範囲の4列目を取りにいくことになり、結果は #REF! です。

列を消したあとにVLOOKUPのエラーが出たら、列番号を1つ減らして「3」に直します。VLOOKUPがうまく動かないときに確認する順番は、VLOOKUPで#N/Aが消えないときの原因の探し方にまとめています。

VLOOKUPで#N/Aが消えない本当の理由|数式より先に疑うべき3つの場所
VLOOKUPで#N/Aが消えない原因を実務目線で解説。スペース混入・TRUE近似一致・範囲ズレなど、会議前に焦らないための確認手順を具体例つきで紹介します。

空白列が何本もあるときは、Ctrlキーを押しながら列番号を順にクリックしていけば、まとめて選んで一度に削除できます。

消せない表の場合:応急処置が2つある

他部署から回ってくる表や、印刷レイアウトが決まっている帳票など、勝手に列を消せないこともあります。その場合は次のどちらかでしのぎます。

1つは、空白列の見出しセルに何か文字を入れてしまう方法です。C1に「-」や「区切り」と入れるだけで、C列は「空白列」ではなくなり、表は1つにつながります。Ctrl+A を押して、D列まで選択されるようになったことを確かめてください。見た目はほとんど変わらないので、共有ファイルでも使いやすい手です。

もう1つは、操作の前に範囲を自分で選ぶ方法です。A1からD6までをドラッグで選択してから、[データ]タブの[並べ替え]を開きます。Excelに範囲を決めさせず、こちらから「ここからここまでが表です」と指定するわけです。ただし毎回の手間になりますし、選び忘れた日に事故が起きるので、あくまで一時しのぎと考えたほうが安全です。

どちらの場合も、並び替えの前に表の左端へ連番(1、2、3…)の列を足しておくと保険になります。万一崩れても、連番の昇順で並び替え直せば元の並びに戻せるからです。あのとき連番さえ入れていれば、3時間の突き合わせは30秒で済んでいました。

空白列を使わずに「すき間」を作る

空白列を入れたくなる理由は、列と列のあいだにゆとりが欲しいからです。その目的は、列を空けなくても達成できます。

いちばん手軽なのは列幅です。売上の列の幅を、標準の8.38から12くらいに広げてみてください。数字は右寄せなので、右隣の利益とのあいだに自然な余白ができます。空白列を1本入れたのと、見た目はほとんど変わりません。

グループの境目をはっきりさせたいなら罫線が向いています。売上の列の右側だけ太線や二重線にすると、「ここで話が変わる」ことが伝わります。

列のまとまりごとに見出しの色を変える方法もあります。売上系は薄い青、利益系は薄い緑、という程度で十分です。濃い色を使うと印刷したときに読みにくくなるので、淡い色にとどめておくのがコツです。

見出しを大きくまたがせたくてセルを結合する人もいますが、これは空白列とは別の種類のトラブルを呼びます。理由は結合セルが並び替えとフィルターを止める仕組みで説明しています。

営業部の合計が1行分しか出ない…Excelの結合セルが集計を壊す仕組みと、見た目を変えずに外す手順
Excelの結合セルは、エラーも出さずにSUMIFの合計を狂わせ、並び替えやフィルターも止めます。結合の向き別の壊れ方、126行の表を3分で直す手順、見た目を残す代替方法を実務目線で解説します。

逆に、空白列を入れたほうがいい場面

ここまで読むと「空白列は悪」と思われそうですが、入れるべき場面もあります。

データの表のすぐ右に、関係のない別の表や計算メモを置くときです。くっつけて置くと、今度はExcelがそれらをまとめて1つの表だと判断してしまい、並び替えでメモまで巻き込まれます。この場合は、あいだを1列以上空けて、きちんと「別物」にしておくのが正解です。

要するに、空白列は「表を切り離す道具」です。1つの表の中に入れると表が切れてしまい、別々の表のあいだに入れると正しく分かれる。そう考えると、入れていい場所と悪い場所の判断に迷わなくなります。

1つの表をどういう形で作るとExcelが扱いやすいか、という土台の話は、データが1行1データになっていないと集計がうまくいかない理由もあわせて読むと、つながって理解できるはずです。

「10月の売上、ゼロだった?」月ごとに列を足すExcel表が集計を壊す理由と、1行1データへの直し方
月ごとに列を足すExcel表は、新しい列が合計から漏れ、フィルターもピボットも使えません。1行1データの見分け方3問、崩れ方の3つの型、84行に作り直した手順を実務目線で解説します。

よく聞かれること

Q. すでに並び替えで崩れてしまいました。戻せますか?

保存する前なら Ctrl+Z で戻ります。保存してしまった場合でも、OneDriveやSharePointに置いているファイルなら、[ファイル]→[情報]→[バージョン履歴]から以前の状態を開ける可能性があります。どちらもだめなら、元の資料と突き合わせるしかありません。崩れに気づいたら、それ以上操作を重ねずに、まず戻せるかどうかを確認してください。

Q. 印刷したときに列のあいだが詰まって見えるのが嫌です。

列幅を広げる方法がそのまま使えます。印刷専用に体裁を整えたい場合は、データの表はそのままにして、別のシートに印刷用の表を作り、そこから参照する形にすると、集計と見た目の両方を守れます。

Q. テーブルにしておけば空白列を入れても大丈夫ですか?

テーブルの中に、見出しのない列は作れません。空の列を挿入しても「列1」のような見出しが自動で付き、テーブルの一部として扱われます。その意味では表が切れることはありませんが、中身のない列が項目として残り続けるので、やはり列幅で調整するほうがすっきりします。

まとめ

空白列が原因のトラブルは、Excelが空白の列を「表の端」とみなすことから始まります。並び替えで左側だけが動く、フィルターの▼が右側に付かない、ピボットテーブルやグラフに項目が出てこない。症状はばらばらに見えても、原因は同じ1本の列です。

表の中のセルを選んで Ctrl+A を押し、選択が表全体に届くかどうか。確認はこれだけで済みます。途中で止まったら、Ctrl+↓ で下まで空かを見て、VLOOKUPの列番号に気をつけながら削除する。消せない表なら、見出しに1文字入れてつなぐ。ゆとりが欲しいときは、列を空けるのではなく列幅を広げる。

48件を3時間かけて直したあの日以来、私は表を受け取ったらまず Ctrl+A を押すようになりました。5秒で済む確認です。

なお、原因がいくつも重なった表の直し方など、もう少し複雑なケースへの応用パターンはnoteでまとめています。もう一歩踏み込みたい方はこちらをどうぞ → 原因が重なった表の「健康診断」12項目と直す順番(note)

コメント

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