Excelでフィルターをかけたのに、なぜか最初の数行にしか反映されない……。
そんな現象に遭遇しました。
今回は、実際に試した対処方法と、あとから思い出した原因について紹介します。
何が起きたの?
仕事で使用していたExcelのリストで、フィルター機能を使おうとしたときのことです。
本来ならリスト全体にフィルターがかかるはずなのに、最初の3行くらいしかフィルターの対象になっていない状態でした。
少し操作してみましたが、すぐには直りません。
そこで、いったん別の方法で対応することにしました。
新しいシートに貼り付け直したら解決!
私が実際に行ったのは、次の操作です。
- 新しいワークシートを作成する。
- 元のリストから項目名をコピーして貼り付ける。
- 続けてデータをコピーして貼り付ける。
- 新しいシートでフィルターを設定する。
すると、今度はリスト全体に問題なくフィルターがかかりました。
無事に解決!
ただ、気になることがひとつ。
「この現象、以前にも見たことがあるような……?」
そのときは原因を思い出せず、作業もできるようになったので、そのままにしていました。
あとから思い出した原因は「テーブル」
しばらくして、ふと思い出しました。
「そうだ! Excelのテーブル機能だ!」
Excelには、通常のセル範囲とは別に「テーブル」という機能があります。
テーブルにはフィルター機能が標準で備わっていますが、フィルターの対象になるのは、基本的にそのテーブルに含まれているデータです。
今回のリストでは、おそらく次のような状態になっていたと考えられます。
- 項目名と記入例までがテーブルに設定されていた。
- その下に追加された実際のデータは、テーブルの範囲外だった。
- そのため、フィルターが最初の数行にしか反映されなかった。
つまり、Excelのフィルターが壊れていたわけではなく、フィルターをかける対象範囲が想定より狭かった可能性があるのです。
なお、元のファイルを改めて検証したわけではないため、これが確定した原因というわけではありません。
同じ現象が起きたときの対処方法
もし同じような現象が起きた場合は、まずテーブルの範囲を確認してみましょう。
方法① テーブルの範囲を広げる
- テーブル内のセルをクリックする。
- 上部の「テーブル デザイン」タブを開く。
- 「テーブルのサイズ変更」をクリックする。
- 実際のデータの最終行まで範囲を広げる。
- 「OK」をクリックする。
これで、対象外だったデータもテーブルに含められます。
方法② テーブルを解除して通常のフィルターを使う
テーブル機能が特に必要ない場合は、通常のセル範囲に戻すこともできます。
- テーブル内のセルをクリックする。
- 「テーブル デザイン」タブを開く。
- 「範囲に変換」をクリックする。
- 確認画面で「はい」を選ぶ。
- 項目名を含むリスト全体を選択し、「データ」タブから「フィルター」を設定する。
これで、通常のセル範囲に対するフィルターを使用できます。
ただし、テーブルを解除すると、テーブル特有の機能は使えなくなるので注意が必要です。数式などでテーブルの機能を利用している場合は、影響を確認してから操作しましょう。
まとめ
今回の経験から、Excelでフィルターが一部の行にしか反映されないときは、テーブルの設定範囲を確認することが大切だと改めて感じました。
私は新しいシートに貼り付け直すことで解決しましたが、原因がテーブルの範囲だった場合は、わざわざシートを作り直さなくても対処できます。
Excelは便利ですが、以前設定された機能が思わぬところで影響することもありますね。
次に同じ現象が起きたときは、まず「テーブル デザイン」を確認してみようと思います。

コメント