プチIT化

【Excel】同一シート内で複数のフィルタをかける方法

こんにちは、わたあめです。今回の記事は、ひとつのシート内で複数フィルタを適用した表を作るには?という記事です。

この記事を書いたきっかけは、ひとつのシートの中でフィルターをひとつのまとまりの範囲でしか適用できなかったからです。ある領域の範囲にオートフィルタをかけた後、同シートの別領域の範囲にオートフィルタをかけようとすると解除されてしまい、ひとつの領域にしかシートがかけられない状況でした。

わたあめ
わたあめ
同じシートで複数の範囲にフィルタ適用できないかな?!

という疑問を解消すべく、調べてみました。それでは、いってみましょう。

対処1:テーブルとして扱う

設定手順

範囲をテーブルとして扱うことで、ひとつのシートの中でそれぞれの領域にフィルタをかけることができます。手順は以下です。

  1. テーブルとして定義したい範囲を選択
  2. [挿入]>[テーブル]をクリック
  3. テーブルの範囲を確認>[OK]ボタン

    先頭行を見出しとして使用するかは、任意です。見出しとして使用したければ、チェックを入れておけばOK。

これを領域ごとに範囲指定し、テーブルとして定義すると、ひとつのシートで複数のフィルタ機能を利用することが可能になります。

テーブルに書式設定したくない場合

テーブルとして定義すると、表として見やすいように書式設定が適用され表のデザイン(行ごとにセルが塗りつぶされるなど)が変わります。もし、元のデザインのままが良ければ、以下の手順で書式をクリアすることが出来ます。

  1. テーブルの中のどこかのセルを選択
  2. [デザイン]タブ>[クイックスタイル]>[クリア]を選択

これで、元々のデザインが維持されるはずです。

注意点:テーブルの配置には注意する

ひとつのシートに複数のフィルタをかけることが出来るようになりましたが、テーブルの配置には注意してください。

テーブルを横並びに配置するとフィルタで条件を絞った時に、他テーブルの行までまとめて隠れてしまいます。以下の画像の例がそうです。例えばテーブル1のフィルタの条件で4行目が隠れる場合、テーブル2の4行目も絞りたくない(隠したくない)のに絞られてしまうという現象が起きます。

絞られたくない行がフィルタリングされてしまうという事象を避けるために、以下の画像のようにテーブルは縦に配置するのがオススメです!

対処法2:シートごとに配置する

フィルタをかけたい範囲ごとに別シートで管理するという案もあります。例えば、Sheet1にテーブル1を、Sheet2にテーブル2を移動してデータごとに別シートで管理するといった具合です。

基本的にはテーブル定義せずにオートフィルタする場合は、ひとつのシートにひとつのフィルタまでという動きに見えました。(もし、いい方法があれば教えてください!)

わたあめ
わたあめ
状況に応じて使い分けてみてくださいね~!

予備知識

これら対処方を調べていく中で湧いた疑問をまとめておきます。

そもそもExcelのテーブルとは?

対処方法の前段として、テーブルとは何か軽く説明を入れておきます。範囲をテーブルとして認識させることで、テーブルツールが利用できるようになります。テーブルツールの機能としては以下が備わっています。

  • テーブル名の設定
  • フィルタ機能
  • スライサーの挿入:(データの一覧をボタンで表示、フィルタかけやすくなる機能)
  • デザインの設定
  • エクスポート:VisioやSharePointoへ

他にも色々ありますが、こんなところです。

わたあめのイメージで簡単に伝えると「範囲をわざわざ明示的に定義しておく」と言う感じです。表は人間の目で見れば「こことここが表だな~!」と分かるのですが、コンピュータにとってはただの色や枠線のあるセルに見えているはず。だから、明示的に範囲を指定して定義することで、”この範囲はひとつのまとまりなんだ!”と認識させることが出来るというイメージです。Excel側でまとまりと認識できれば、その範囲に対していろいろと機能をExcelで提供できるということなのです。

オートフィルタとテーブルに違いは?

オートフィルタとテーブルのフィルタ機能に違いはあるのかも気になりました。わたあめの解釈で恐縮ですが、どうやらテーブル機能の中の一つの機能としてフィルタ機能が存在するという感じみたいです。「テーブルで範囲指定すると、その中でフィルタ機能が使えるよ」ということですかねぇ。

さいごに

いかがだったでしょうか!Excelの便利なフィルタ機能を使うにあたっての疑問解決の記事でした。この記事が少しでもお役に立てたのならば幸いです。それでは、また!

flier(フライヤー)