第50話 FILTER関数とその応用例

 翌日のクエストに向かう車中。運転しながらサイトウが言う。


「今日の現場はフィルタのやつらがでてくるはずだ。イノウエ、つくまでにタカハシに構文仕込んどけ」


「わかりました」


 後部座席のイノウエが後ろから持ち運びのホワイトボードを取り出す。


「まずは基本のFILTER。返す結果は少しQUERYと似ているかもしれません」


=FILTER(範囲, 条件1, [条件2, ...])


「使い方は名前の通りでシンプルだし、直感的です」


A:名前 B:性別 C:年齢

---------- --- -----

タカハシ 男 27

サイトウ 男 43

イノウエ 女 17


「例えばここから30才以下の人を抽出するとします」


=FILTER(A2:C4, C2:C4<=30)


「結果はこうなります」


(著者注:本来、見出し行は結果に含まれませんが、解説の便宜上付記しています)


名前 性別 年齢

---------- --- -----

タカハシ 男 27

イノウエ 女 17


「条件の部分はTRUE/FALSEのどちらかを返す式を書きます。さらに女性だけに絞るときはこう」


=FILTER(A2:C4, C2:C4<=30, B2:B4="女")


名前 性別 年齢

---------- --- -----

イノウエ 女 17


「なるほど。条件を追加して書き連ねるのはSUMIFSやCOUNTIFSと似てますね」


「そうですね。でもこっちのほうが直感的じゃないですか?」


 たしかにそうだ。SUMIFSやCOUNTIFSの場合、条件はイコールが前提となっている。例えば先の表で男性の数をCOUNTIFSで数えるならこうだ。


=COUNTIFS(B2:B4,"男")


 これは問題ないが、30才以下を指定しようとするとちょっとわかりにくい。


=COUNTIFS(C2:C4,"<=30")


 数式をクォーテーションで囲むことに違和感がある。さらに何歳以下が何人いるか、という表を作る場合は、30という数字をどこかのセルから参照して作ることになり、こういった形で書くことになる。


=COUNTIFS(C2:C4,"<="&D3)


 感覚的な話ではあるが、どうも読みにくい。その点、FILTERの条件の書き方は読みやすいように思える。


 イノウエは解説を続ける。


「ちなみにフィルタして抽出する範囲の中に条件の範囲が含まれる必要はありません、並んで行さえ揃っていればよいのです。なので30才以下の名前だけを返したい場合はこう書きます」


=FILTER(A2:A4,C2:C4<=30)


名前

----------

タカハシ

イノウエ


「余談ですが、こうすればCOUNTIFSの代わりにもなります」


=COUNTA(FILTER(A2:A4,C2:C4<=30))


「ちなみにSUMやAVERAGEには対応して条件付き集計するSUMIFS、AVERAGEIFSがありますが、このやり方なら対応するIFS関数がないものでも条件付き集計ができます」


=MEDIAN(FILTER)

=COUNTUNIQUE(FILTER)


「中央値を求めるMEDIANや、重複を排除してカウントするCOUNTUNIQUEなど。かゆいところに手が届くので、見かけることも多いですね」


「なるほど、便利ですね」


「はい。FILTERはExcelにはなかった関数(※)で、かなり便利に使えますね。以上が解説です」


「ありがとうございました」


 運転席からサイトウが振り返って言った。


「おい。SORTやUNIQUEも忘れんなよ、続けろ」


 あっちゃー、というような顔をしてイノウエがホワイトボードの文字を消していく。どうもこの人はおっちょこちょいなきらいがあるようだ。



※実は最近はExcelも追随してFILTER関数を追加しようとしているようです。ただ現在はあくまでベータ機能であるとのこと。


> 注: 2018 年 9 月 24 日: FILTER 関数はベータ版機能の 1 つであり、現在は Office Insider の一部の方のみが利用できます。今後数か月にわたり、これらの機能の最適化を行う予定です。準備が整ったら、すべての Office Insider および Office 365 サブスクリプションをお持ちの方に向けてリリースします。

https://support.office.com/ja-jp/article/filter-%E9%96%A2%E6%95%B0-f4f7cb66-82eb-4767-8f7c-4877ad80c759



*****************************

MEDIANやCOUNTUNIQUEを条件付き集計するテクニックについては以前ブログで書いています。ご興味のある方はこちらからどうぞ。

MEDIAN https://www.minemura-coffee.com/entry/2017/04/21/143507

COUNTUNIQUE https://www.minemura-coffee.com/entry/2017/05/30/210338

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る