パパセンセイ365

Power Platformの技術系のお話を繰り広げます

【Excel】スピルの活用:スライサーで選択中の項目を取得する

テーブルでスライサーを使っていると、絞り込んでいる項目を取得したくなる時があります。 スピル機能が使えるようになるまでは複雑な式で実装していました。

↓以前の話

https://www.papasensei365.info/entry/2016/10/21/000000#%E8%A7%A3%E8%AA%ACwww.papasensei365.info

qiita.com

しかし、スピル機能を使うことで割とシンプルに実装できるようになりました。 今回はそんな話です。

何をしたいか

スライサーで選択している項目を取得して別のセルに表示します。

f:id:tomikiya:20200414143436p:plain

実装方法

SUBTOTALで表示行と非表示行を判定する

作業列を追加することになりますが、SUBTOTALで表示行と非表示行を判定する式を追加します。

=SUBTOTAL(103,[@食べ物])

f:id:tomikiya:20200414143947p:plain

これで非表示の行は0になり、表示中の行は1になります。

SUBSOTALの詳細はこちらをご覧ください。

SUBTOTAL解説

FILTER関数、UNIQUE関数を使って項目を取得する

まずはFILTER関数で表示行のみ取得します。 すると重複はあるものの選択中のレコードを取得できます。

=FILTER(データ[食べ物],データ[表示判定])

f:id:tomikiya:20200414145303p:plain

そして、重複を削除するためにUNIQUE関数を追加します。

=FILTER(データ[食べ物],データ[表示判定])

f:id:tomikiya:20200414145459p:plain

以上で完成です。

SORT関数を使っても並び順がスライサーと揃わないんだけど

はい、SORT関数を使って並べ替えたとしてもスライサーの並び順と一緒にはなりません。 仕様が異なるからです。 SORT関数は漢字の並べ替えができなかったりします。 SORT関数の方が融通が利かないので、どうしても合わせたい場合はスライサーの並べ替えにてユーザ設定リストを使いましょう。

ということで

式がシンプルになったことでだいぶ可読性が上がりそうです。選択中の項目を取得してさらに加工する機会を増やせそうですね。

【Excel】データが欲しいのに表をもらったのでノンプログラミングでデータに変える

本記事は移転しました。

約3秒後にリダイレクトします。

リダイレクトしない場合はここをクリックしてください。

【Excel】スピル機能を使用してリストを連動させる

本記事は移転しました。

約3秒後にリダイレクトします。

リダイレクトしない場合はここをクリックしてください。

【Excel】FILTER関数を使って条件に合致したレコードを取得する

本記事は移転しました。

約3秒後にリダイレクトします。

リダイレクトしない場合はここをクリックしてください。

【Excel】名前定義にはブックとシートの指定があって取り出し方によって値が変わることがある

本記事は移転しました。

約3秒後にリダイレクトします。

リダイレクトしない場合はここをクリックしてください。