Excelでフィルターの▼をクリックしたのに、絞り込みたい名前がどこにもない。
リストを下までスクロールしても出てこないし、そもそも候補が数個しか並んでいない。データはちゃんと入力してあるのに、です。
これ、私も何度もやられました。取引先からもらった名簿にフィルターをかけたら、候補が20件ほどで打ち止め。画面をスクロールすれば300行くらいあるのは見えているのに、▼の中には20件しか出てこない…。最初は「ファイルが壊れたのでは」と本気で疑いましたが、原因はもっと単純なところにありました。
フィルターの▼に並ぶ候補は、Excelが「ここからここまでが表だ」と判断した範囲の中身だけです。つまり候補が足りないときは、フィルターの故障ではなく、範囲の認識がズレているケースがほとんど。データ側ではなく、設定の問題なんですね。
そしてもうひとつ、行数の多い表では、Excel側の仕様で一覧に並べられる件数に上限があります。こちらは何度やり直しても直らないタイプなので、知らないと延々ハマります。私も昔、上限の存在を知らずに30分ほど無駄にしました。
この記事では、Excelのフィルターに項目が全部出てこないときの原因を、空白行による範囲の切れ、見出し行だけの設定ミス、1万件という表示上限、セルの結合の4つに整理して、確認手順と直し方をまとめます。
あわせて、▼どころか[フィルター]ボタン自体がグレーアウトして押せないパターンの対処も後半で扱います。症状に心当たりのある見出しから読んでもらって大丈夫です。
まずはExcelがどこまでを表だと思っているか確認する
原因を探す前に、やっておきたい確認がひとつあります。
フィルターをかけた状態で見出し行のセルをクリックすると、表のまわりに細い枠線が表示されます。それがExcelの認識している範囲です。
もっと確実なのは、表の左上のセルを選んでCtrl+Shift+Endを押す方法。選ばれた範囲の右下が、Excelにとっての「データの終わり」になります。
ここで選択が表の途中でぷつりと止まったなら、候補が足りない理由はほぼ確定です。
逆に最終行まできれいに選択されるなら、後半で説明する件数の上限か、セルの結合を疑う流れになります。まずはこの一手間で、原因を半分に絞り込めます。
原因1:表の途中に空白行や空白列がある
いちばん多いのがこれです。
表のどこかに、データの入っていない行がまるごと1本挟まっていませんか。Excelは連続したデータのかたまりを1つの表として自動判定するため、空白行にぶつかった時点で「表はここで終わり」と解釈します。
やっかいなのは、見た目では空白行に気づきにくいことです。区切りのつもりで入れた1行、行を削除したあとに残ったスカスカの1行、列でいえばメモ欄として空けてある1列。どれも犯人になり得ます。
特に他の人が作ったファイルを引き継いだときは要注意。私が20件で打ち止めになった名簿も、部署の区切りとして空白行が1本入っていただけでした。犯人はいつも地味です。
直し方1:範囲を選んでからフィルターをかけ直す
手っ取り早いのは、範囲をこちらから教えてやる方法です。
- [データ]タブの[フィルター]をクリックして、いったんフィルターを解除する
- 見出し行から表のいちばん下の行まで、ドラッグで選択する
- 選択したまま、もう一度[フィルター]をクリックする
自分で範囲を指定してから設定すれば、途中に空白行があってもその範囲全体が対象になります。空白行を残したまま使いたいときは、この方法がいちばんラクです。
直し方2:空白行そのものを削除する
そもそも空白行が不要なら、消してしまうのが根本解決です。
フィルターを解除してから空白行を選び、Ctrl+-(マイナス)で行ごと削除します。空白行が点在していて探すのが面倒なときは、いったん範囲を選択してフィルターをかけ、[(空白セル)]だけにチェックを入れると、空白行だけを表示させて一気に処理できます。
削除するときは、他の列に値が残っていないかを必ず確認してください。「空っぽに見えたけど右のほうの列に備考が入っていた」というのは、地味に痛い事故です。
直し方3:テーブルに変換してしまう
今後も更新していく表なら、テーブルにしてしまうのが手堅い選択です。
表の中のセルをどこか1つ選んでCtrl+Tを押し、見出し行の有無を確認して[OK]。これだけで表がテーブルになります。
公式ドキュメントにも「すべてのテーブルの列でフィルター処理が有効になっている」と書かれているとおり、テーブルにした時点でフィルターは自動で有効になります。範囲がはっきり定義されるので、行を足したときに設定し直す手間もなくなります。
原因2:見出し行だけにフィルターをかけている
▼を押しても[(すべて選択)]しか出ない。候補欄が完全に空っぽ。この症状なら、原因はほぼこれです。
見出しの1行だけを選択した状態で[フィルター]をクリックすると、その1行だけが対象範囲になります。データが1件も含まれていないので、当然ながら候補も出ません。
Microsoftの公式Q&Aでも、タイトル行だけでなく「タイトル行」から「データが存在する範囲の最下行」までの全ての行を選択してフィルターを設定し直すよう案内されています。範囲を選ばずに、表の中のセルを1つだけ選んだ状態から[フィルター]を押すのが、実は安全な操作です。
もうひとつ見落としやすいのが、見出しを2行に分けているケース。
「氏名」の上に「基本情報」のような大見出しを置いている表は珍しくありませんが、Excelはどちらを見出しと見なすか迷います。公式ドキュメントは「1つの行にのみ列見出しを入力する」とはっきり書いていて、2行分の文字を入れたいなら、セル内で文字列を折り返すよう案内しています。
大見出しがどうしても必要なら、表とのあいだに1行あけて、フィルター範囲を選択してから設定するのが現実的な落としどころです。
参考:公式ドキュメント
原因3:候補は1万件までしか並ばない仕様
範囲は合っている。空白行もない。それなのに候補が足りない…という場合は、データの件数を疑ってください。
Excelのフィルターのドロップダウンに並ぶ項目は、重複しないもので1万件までと決まっています。公式の「Excel の仕様と制限」に、フィルターのドロップダウンの一覧に表示されるアイテムは「10,000」と明記されている、れっきとした仕様です。
公式のフィルター解説ページにも「リスト内で重複しない最初の10,000項目だけがフィルター ウインドウに表示されます」という注意書きがあります。不具合ではないので、ファイルを開き直してもExcelを再起動しても変わりません。
ちなみに、ワークシートの行数の上限は1,048,576行。10万行を超えるデータを扱うことも普通にある以上、1万件で頭打ちになる場面は意外と身近です。
1万件を超えたときの回避策
- チェックボックスの一覧を使わず、[テキストフィルター]や[数値フィルター]で条件を直接指定する
- ドロップダウン上部の検索ボックスにキーワードを入力して、候補を絞り込む
- 日付や部署など別の列で先に絞り込んで、対象そのものを減らす
- 集計が目的なら、フィルターではなくピボットテーブルに切り替える
大事なのは、絞り込みの計算そのものは1万件を超えた行にもきちんと効くという点です。上限があるのは、あくまで一覧に並べて見せられる件数のほう。「候補に出ない=抽出できない」ではないので、この点は押さえておいてください。
参考:Excel の仕様と制限
原因4:データ部分にセルの結合が混ざっている
見出し行や項目の列でセルを結合していると、フィルターの動きが途端に怪しくなります。
結合したセルは、Excelの内部では左上のセルにだけ値が入っていて、残りは空白として扱われます。3行分を結合して「営業部」と書いた場合、値を持っているのは1行目だけ。2行目と3行目は空白なので、候補の一覧にも[(空白セル)]として現れますし、絞り込んだ結果も期待どおりになりません。
直し方はシンプルで、データ部分の結合はすべて解除し、同じ値を各行に入力します。「営業部」を3行に繰り返し書くのは冗長に見えますが、フィルターや並べ替え、ピボットテーブルまで含めて考えると、こちらが正解です。
見た目の中央揃えがどうしても欲しいときは、[セルの書式設定]の[配置]タブから[選択範囲内で中央]を使ってください。横方向であれば、セルを結合せずに結合したような見た目にできます。
そもそも▼が押せない・グレーアウトしているとき
候補以前に、[フィルター]ボタン自体が灰色で押せないこともあります。この場合は原因が別で、代表的なのは次の2つです。
複数のシートを選択している
シート見出しをCtrlキーを押しながらクリックして複数選んだ状態、いわゆる作業グループになっていると、フィルターは使えません。タイトルバーやシート見出しの見え方が普段と違っていたら、これを疑ってください。
解除は簡単で、グループに入っていない別のシートを1枚クリックするだけ。全シートを選んでいる場合は、いま開いているシート以外の見出しをクリックすれば戻ります。
シートが保護されている
シートの保護も、よくある原因です。
公式の解説によれば、保護をかけるときに「オートフィルターの使用」を許可しておけば、すでに適用済みのオートフィルターのドロップダウン矢印は操作できます。ただし「この設定に関係なく、ユーザーは保護されたワークシートでオートフィルターを適用または削除することはできません」とも明記されています。
つまり、保護されたシートに新しくフィルターをかけることはできません。[校閲]タブから[シート保護の解除]を実行してから設定する必要があります。パスワードがかかっている場合は、作成者に確認を。
参考:公式サポート
見落としがちな落とし穴:別の列で先に絞り込んでいる
「昨日は出ていた候補が、今日は出てこない」。そんなときは、他の列のフィルターを確認してみてください。
ある列で絞り込んだ状態で別の列の▼を開くと、候補に並ぶのは、その時点で表示されている行の値だけです。日付で今月分に絞ったあとに担当者の列を開けば、今月動きのなかった担当者は当然ながら候補に出てきません。
公式ページにも、フィルター中の検索について「表示されているデータのみが検索されます。表示されていないデータは、検索されません。すべてのデータを検索するには、すべてのフィルターをクリアします」と書かれています。仕様どおりの動きなので、直しようがあるとすれば操作の順番のほうです。
絞り込み済みの列は、▼のアイコンが漏斗の形に変わります。[データ]タブの[クリア]を押せば、フィルターの設定は残したまま抽出条件だけを一度リセットできるので、迷ったらまずここを押しましょう。
参考:公式サポート
フィルターでつまずかない表に整えるコツ
ここまでの原因を裏返すと、トラブルになりにくい表の条件が見えてきます。
- 見出しは1行だけにする
- 表の途中に空白行・空白列を作らない
- データ部分ではセルを結合しない
- 作り始めの時点でテーブルにしておく
- 1枚のシートに表を2つ並べない
最後の項目は特に効きます。公式ドキュメントに「同時にフィルターを適用できるのは、シートの1つのセル範囲に対してのみです」とあるとおり、1シートに表が2つあると、片方にしかフィルターをかけられません。
集計表とデータ表を1枚に同居させている資料はよく見かけますが、フィルターを使う前提なら、シートを分けたほうが結果的に早いです。
関連記事:エクセル内の全シートのカーソル位置を一括で左上(A1)にする方法
まとめ
Excelのフィルターに項目が全部出てこないとき、まず疑うのは範囲の認識です。
表の左上からCtrl+Shift+Endを押して、選択が途中で止まるかどうかを見る。止まるなら空白行や空白列で範囲が切れているので、見出しから最終行までを選び直してフィルターをかけ直せば解決します。候補が[(すべて選択)]だけなら、見出し行しか範囲に入っていないパターンです。
最終行まできれいに選ばれるのに候補が足りないなら、1万件の表示上限か、セルの結合を確認してください。1万件の上限は公式に明記された仕様で、直す対象ではありません。テキストフィルターや検索ボックスに切り替えるのが正解です。
フィルターの候補が足りないのは、ほとんどの場合Excelの不具合ではなく、表の作りとフィルターの範囲がかみ合っていないサインです。
個人的にいちばんおすすめしたいのは、原因1で紹介したテーブル化です。Ctrl+Tを1回押しておくだけで、範囲のズレも、行を追加したときの設定し直しも、まとめて過去のものになります。私は他の人から受け取ったファイルを触るとき、まずテーブルにできる形かどうかを見るようになりました。
なお、候補以前に▼そのものが押せないときは、複数シートの選択とシートの保護という別ルートを疑ってください。こちらは表の作りとは関係なく、いまの操作状態が原因です。
フィルターが素直に効く表は、集計もグラフ化も驚くほどラクになります。今つまずいているファイルを直すついでに、表そのものを少し整えてみてください。