Help us understand the problem. What is going on with this article?

[Excel]スライサーで選択中の項目を取得する 複数選択編

More than 3 years have passed since last update.

フィルター中の項目を取得する方法です。単一選択の場合は下記を参照してください。
http://qiita.com/tomikiya/items/a2d856a24905fbc82c54

複数選択の場合は単一選択より若干複雑です。

前提としてですが、本質以外の雑音を排除するためエラー回避等の関数を除いています。適宜読み替えてください。

↓こんなテーブルとスライサーを作って
d.png

スライサーで選択すると選択中の項目を取得できます。
e.png

やり方

SUBTOTALを使う手順は単一選択と変わりませんが、
そこに重複削除とレコード採番を追加してからVLOOKUPで抽出します。
f.png

C列(①)は、重複行を抽出するための定番のやり方「COUNTIF」で果物ごとに登場回数を計算しています。
B列(②)でレコードのキーを作ります。「表示されている」かつ「C列が1」の行にROWで採番します。これがPRIMARY KEYになります。
あとはPRIMARY KEYをもとにVLOOKUPで各行の果物を抽出します(③)。

解説

①は定番すぎるため省略します。ただ行が多くなると計算量が増えて遅くなるので注意だけしておきます。
②について、「表示されているかどうか」のチェックは単一選択編の時と同様SUBTOTALを使用しています。
また重複を削除するため、C列の結果が「1」の行だけを対象にしてからROWで採番しています。
採番は重複しなければROWでなくてもよいです。ROWを使うと昇順に並ぶのでいろいろと便利ではあります。
最後にB列(②)をキーにVLOOKUPで抽出するわけですが、SMALLを使えば小さいKEYから順に取得できます。

補足

③のVLOOKUPですが、B列が昇順に並んでいるので検索方法はあいまい検索(TRUE)でOKです。若干速くなります。
また、SMALLの第2引数を数字にしていますがROWに変えればコピペできます。
エラー処理もしていないのでほっとくとエラーが出ます。IFやIFERROR、条件付き書式などで回避してください。

行が多くなれば計算量が多くなるので遅くなります。例えば1000行(適当)を超えるようならVBAとかPOWER QUERYとか別の方法を考えた方がよいです。

tomikiya
water-cell
地球人口100億の時代への農業革命をWebテクノロジで支える
https://water-cell.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした