複数の列でフィルターをかけることがありますが、1つずつチマチマと設定するのは結構大変ですね。
しかも、そのフィルターを解除すると、またやり直しになりますし。。
何か良い方法はないですかね?
確かに、フィルターの設定が複数条件で絞込まれていると大変ですね。。
そんな場合は、IF関数でフィルター用のフラグをつくってあげると、1つの列だけでフィルターのON・OFFが楽チンになりますよ!
それでは、詳しく解説していきますね!
はじめに
本題に入る前に、この記事がおすすめな人を挙げてみます。
- 集計や分析を行なう機会が多い人
- エクセルを扱う機会がある人
- 事務職を目指している人
ちなみに、最低限「IF関数の基礎」を把握している想定での記事となります。
※自信がない方はこちらの記事で学んでください。
→【エクセル初心者向け】データの条件分岐を自動化してストレスフリー!IF関数の使い方
複数条件のフィルターを設定するのは面倒。。
複数条件のフィルターとは、ここでは複数列でフィルターを設定することを指しています。
たとえば、次のように「国語」・「算数」・「英語」のテスト結果を管理している表があったとしますね。
この3教科ですべてが60点より得点が高い人だけ抽出したい場合はどうしますか?
よく見受けられるのは、愚直に1列ずつフィルター設定をしていく方法ですね。
今回の例でいえば、「国語」の列から順に、「数値フィルター」機能で「60より大きい」という条件でフィルターを設定していきます。
この作業を残りの「算数」と「英語」の列もそれぞれ行えばOKです。
今回は列数も各データも少ないのでまだマシですが、データ数が多ければ多いほど、フィルターのON・OFを切り替えるのは、かなり面倒になります。
そこで、今回のテクニックが生きてくるのですね。
「数値フィルター」機能とは?
ちなみに、「数値フィルター」機能について、おさらいしておきます。
列内のデータがすべて数値の場合に使用できるフィルター機能の一種ですね。
すでに、フィルター機能が設定されている場合の使い方は以下のとおりです。
- 任意の「▼」をクリック
- 「数値フィルター」をクリック
- 任意の条件を選択(今回は「指定の値より大きい」を選択)
- 「オートフィルターオプション」ダイアログへ任意の条件となる数値を入力
- 「OK」をクリック
これで条件に合致するデータのみを抽出することができました!
IF関数でフィルター用のフラグを立てる列を追加しよう!
今回の解決策として、1列分の余白の列を使い、フィルター用の「フラグ」を立てていきましょう。
ちなみに「フラグ」とは、以下の意味合いです。
英語で旗の意味。ソースコードで、ある条件を満たしているかどうかを判断するために使う変数のこと。通常は、0か1といった2値項目を使うが、処理によっては文字列などを使うこともある。条件を満たしていることを「フラグが立つ」などと表現することがある。
引用元: フラグ(ふらぐ)とは – コトバンク
今回の例では、フィルターの条件が「3教科(3列)ですべてが60点より高い得点」ですから、その条件に該当すれば”1”、該当しない場合は”0”と判定するIF関数を用いて、フラグを立てれば良いわけですね。
早速、実際にフラグ立てを行ってみた結果は以下のとおりです。
今回は条件が複数あるため、今回はIF関数の条件部分にAND関数を組み合わせています。
IF関数とAND関数の組み合わせテクニック自体は以下の記事で詳細を解説していますので、ご参考になさってください。
【エクセル中級者向け】IF関数の「論理式」をAND条件(○かつ□)にする方法 | Excelを制する者は人生を制す ~No Excel No Life~
目次1 はじめに2 IF関数の条件分岐をAND条件で判定したい!3 引数「論理式」にAND関数を組み合わせる!・・・
サンプルファイルで練習しよう!
では、今回のテクニックを使ってみましょう!
サンプルの条件
今回の題材は次のとおりです。
「テスト結果」というシートに5名分(A~E)の「国語」・「算数」・「英語」のそれぞれのテスト結果が記録されています。
この3教科それぞれ60点より高い得点のデータを識別できるようにE列へIF関数を用いたフラグを立ててみましょう。
実際に練習してみよう!
可能であれば、以下のサンプルファイルをダウンロードして実際に操作してみてください。
サンプルファイル_IF関数_一意コード生成
※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)
ファイルを開いたら次の手順を実施してください。
- 「テスト結果」シートを選択
- E2セルへ「=IF(AND(B2>60,C2>60,D2>60),1,0)」を入力
※赤字の部分をコピーして貼り付けてください。 - E2セルをコピー
- E3~E6セルへ貼り付け(ペースト)
E2セル~E6セルの各セルの数式が以下のとおりであればOKです!
B~D列の各値を変えてみて、E2セル~E6セルの値がどう変わるかも試してみてくださいね。
もし、表や数式を加工してしまった場合は、上記手順を実施済みの「テスト結果 (関数あり)」シートもサンプルファイル内に用意していますので、必要に応じてご活用くださいね。
さいごに
今回のテクニックで重要なのは、あくまでも「条件に合わせたフラグ立てを行なうこと」です。
必ずしもAND関数を使うわけではなく、状況に応じて他の関数や四則演算をうまく活用してフラグ立てをしてみてください。
最初は難しいかもしれませんが、テクニック的にはIF関数の基本+ちょっとした応用なので、慣れれば自由自在に使いこなすことができるはずですよ!
他にも、IF関数を便利に使うための応用テクニックを私の書籍で紹介しているので、こちらもご参考にしていただければと思います。
▼IF関数を基本から応用まで体系的に学びたい方向け
▼IF関数の応用テクニックに加えて、その他VLOOKUP関数なども学びたい方向け
ご参考になれば幸いですm(_ _)m
今回のテクニックは個人的にめちゃくちゃ実務で使っているやつです。
特に、データ数が多い表を分析する際には、「フラグとなる列をいかにつくるか」が作業効率へそのまま直結しますね。
このようなIF関数の使い方の発想がなかった方こそ、ぜひ反復練習して身につけてほしい内容です。