【Excel】スピルの活用:スライサーで選択中の項目を取得する
テーブルでスライサーを使っていると、絞り込んでいる項目を取得したくなる時があります。 スピル機能が使えるようになるまでは複雑な式で実装していました。
↓以前の話
https://www.papasensei365.info/entry/2016/10/21/000000#%E8%A7%A3%E8%AA%ACwww.papasensei365.info
しかし、スピル機能を使うことで割とシンプルに実装できるようになりました。 今回はそんな話です。
何をしたいか
スライサーで選択している項目を取得して別のセルに表示します。
実装方法
SUBTOTALで表示行と非表示行を判定する
作業列を追加することになりますが、SUBTOTALで表示行と非表示行を判定する式を追加します。
=SUBTOTAL(103,[@食べ物])
これで非表示の行は0になり、表示中の行は1になります。
SUBSOTALの詳細はこちらをご覧ください。
FILTER関数、UNIQUE関数を使って項目を取得する
まずはFILTER関数で表示行のみ取得します。 すると重複はあるものの選択中のレコードを取得できます。
=FILTER(データ[食べ物],データ[表示判定])
そして、重複を削除するためにUNIQUE関数を追加します。
=FILTER(データ[食べ物],データ[表示判定])
以上で完成です。
SORT関数を使っても並び順がスライサーと揃わないんだけど
はい、SORT関数を使って並べ替えたとしてもスライサーの並び順と一緒にはなりません。 仕様が異なるからです。 SORT関数は漢字の並べ替えができなかったりします。 SORT関数の方が融通が利かないので、どうしても合わせたい場合はスライサーの並べ替えにてユーザ設定リストを使いましょう。
ということで
式がシンプルになったことでだいぶ可読性が上がりそうです。選択中の項目を取得してさらに加工する機会を増やせそうですね。