おはようございます。こんにちは。こんばんわ。
改善が大好きな、齋藤正夫です。
ブログをご覧いただき、ありがとうございます。
今日は、Excelのスピル関数の仲間の「FILTER関数」について、語ろうかと思います。
Excel関数で、スピル関数を使ったことはあるでしょうか?
現時点では、サブスクリプション契約のOfficeだけかな?
(2021年11月時点)
スピル関数の種類は多くないですが、私は、1999年から待ちわびた関数なのです。リリースされたときは、本当に感動しました!
種類の紹介は割愛しますが、その中で、最も複雑なのが、「FILTER関数」です。でも、使えるようになれば、鬼に金棒状態!
スピル関数が使えない時は、OFFSET関数、INDIRECT関数、ROW関数などなど、複雑な組み合わせで、セル範囲を指定していました。
しかし、複雑な数式を作らなくても、セル範囲を取得できます。これが、スピル関数の真骨頂です。
ちょっとした動画を差し込みます。マクロは使っていませんよ。
セルの値を変更すると、下のリストも連動して変更されますね!
これが、スピル関数です。セル範囲を返すのです!
尚、A8のセルにこんな数式を入力しています。
F6のセルは、「意味の無い数値」の合計を出してします。
このような使い方は、エクセル集計アルアルです。
支店ごとの詳細を出したい、年毎の比較したい。応用は様々です。
ただ、Excelに詳しい人は、こんな考えをしたのでは?
「ピボットテーブルのスライサーでいいじゃん。」
スライサーでも良いでしょう。ただ、スライサーには、欠点があります。
それは、「あいまい検索ができない」です。
曖昧検索(抽出)を実現するには、数式しかないのです。
そこで、活躍する関数が、FILTER関数です。
しかし、Docsを読んでも、FILTER関数は、詳しく説明されていません。
”含む”に、データの抽出条件を書くのですが、これが、難しい。
ここで、一つのポイントを書きます。
「条件は、TUREかFALSEを判定している」です。
Excelの TRUE と FALSE は、ちょっと違った特徴を持っています。
FALSE =0
TRUE = 0以外
この特徴を利用するのです。
事例では、IFERROR関数の中に、FIND関数を使って、文字の検索を行っています。もし、文字があれば、その文字の位置を返します。
ようするに、文字があれば、1以上の数値を返し、無ければ、エラーとなり、0を返します。
0 と 0以外で、TRUE/FALSEを表現してデータを抽出しているのです。
最後に、こんな思いな人もいるといると思うので書いておきます。
「うちのOfficeバージョン古くって、スピル関数なんて使えねーよ!」
これは、正直、残念と言うしかありません。
世の中は、クラウドサービスを活用するように進んでおり、クラウドサービスを利用できないことは、時代に遅れると意味します。
より良く便利に利用するなら、サブスクリプション契約のOfficeを契約することを強くお勧めいたします。