Excelで表を作ったあと、オートフィルターを使用し、欲しい情報だけ見えるようにすることはよくありますよね。
ですが、自分が欲しい条件の組み合わせが作れない…
そんな困り事はありませんか?
以下のような家計簿を用意しました。
この中で、「クレジットカードで支払ったもの」もしくは「支払方法は問わずに3000円以上のもの」の一覧を作ってみましょう。
こういった条件がある場合、まずはオートフィルターを使うと思います。
ですが、たとえば最初に「F列の支払い方法がクレジットカードである」という条件を作ってしまうと、以下のように現金や口座振替で3000円以上のものが表示されなくなってしまいます。
これを解決するために、FILTER関数を使ってみましょう!
FILTER関数の使い方
この関数の構文の紹介です。
=FILTER(array, include, [if_empty])
array:
フィルタリングする範囲または配列を指定します。
例:A1:D20
include:
フィルタリングの条件を指定します。条件は論理値(TRUEまたはFALSE)を返す必要があります。
例:B1:B20="食費"
[if_empty]:
フィルタリングの結果が空の場合に返す値を指定します。
省略した場合、フィルタリングの結果が空のときにエラーが返されます。
例:"該当するデータがありません"
実際に使ってみよう!
まずは表を作成したい場所に見出しを用意しておきましょう。
今回は、元の表と比較をするために右隣に見出しを作成しました。
FILTER関数を使う場合、表の左上にあたる場所に数式を入力します。
今回はI2セルに以下の数式を入力してください。
=FILTER(A2:G21,((F2:F21="クレジットカード") + (D2:D21 >= 3000)))
これで、以下のような表が完成しました!
※見た目を合わせるために罫線を追加しています。
この数式は何をしていたの?
FILTER関数の中身を分解して見てみましょう。
書く内容は「,」で区切られるため、2つの数式になります。
ちなみに、今回は[if_empty]を省略して作成しています。
array:
A2:G21
こちらは元々の表のうち、見出し以外を選択します。
include:
((F2:F21="クレジットカード") + (D2:D21 >= 3000))
ここでは ( ) に注目してください。よく見ると、(F2:F21="クレジットカード") と (D2:D21 >= 3000) の足し算になっています。
分解して見てみましょう。
(F2:F21="クレジットカード")
これは、「クレジットカードで支払ったもの」を抽出するための数式です。
支払方法はF列に記載されています。
そのため、見出しを除いた範囲であるF2からF21がクレジットカードと同じものを探すため、このような式になります。
(D2:D21 >= 3000)
これは、「支払方法は問わずに3000円以上のもの」を抽出するための数式です。
金額はD列に記載されています。
そのため、こちらも見出しを除いたD2からD21が3000以上と同じものを探すため、このような式になります。
そして最後に足し算を行います。
この足し算はor演算を表しており、複数ある条件のうち、どちらか一方でも満たすものを探すために利用しています。
その結果、「クレジットカードで支払ったもの」もしくは「支払方法は問わずに3000円以上のもの」を表すことができます。
このようにFILTER関数を使うと、オートフィルターでは表現できない複雑な条件を作成することができます。
ぜひ試してみてください!