■ やりたいこと
フィルターのドロップダウン形式の選択項目の候補を動的に変更したいです。
別シートから遷移してくる際にURLから渡されたパラメータに応じてデータを絞り込むため、フィルターの選択項目も絞り込んだデータに対応させたいためです。
具体的な例でお話しすると、以下のようなデータセットの場合に
Category, SubCategory, ItemName,
電化製品,スマートフォン, 商品A
電化製品,スマートフォン, 商品B
電化製品,ノートパソコン, 商品C
衣料品,ジーンズ, 商品D
衣料品,Tシャツ, 商品E
-
遷移する際に、Category
というパラメータを渡す
-
渡された Category
パラメータに応じてデータセットをフィルタして表示する
-
例) Category = 衣料品
ならば、ジーンズと Tシャツのデータを出す
-
Category で絞られたうえで、さらにページ内でSubCatgoryで絞るようにフィルタコントロールを表示する
-
例) Category = 衣料品
のときには、[ジーンズ, Tシャツ] のみが候補の SubCatgory フィルタを作る
-
例) Category = 電化製品
ならば、[スマートフォン, ノートパソコン] が候補の SubCatgoryフィルタを作る
ということがやりたいです。
■ 困っていること
上記やりたいことを満たせなくて困っています。
具体的には、パラメータに応じてフィルタの中身を動的に切り分けたいが、初回データセット読み込み時のままドロップダウンの内容が固定されてしまう。
- 例)
Category = 衣料品
のときに、[スマートフォン, ノートパソコン, ジーンズ, Tシャツ] が候補の SubCatgory フィルタが作られてしまう。
■ ためしたこと
Wakana
2
@kenshin
QuickSight Communityにご質問いただき、ありがとうございます!
データセットのパラメータではなく、分析のパラメータのみで実装した場合はどうでしょうか?
CategoryとSubCategoryでぞれぞれコントロールが作成されており、「関連する値のみを表示」機能を使用されておられますでしょうか?
@kenshin
以下、Sample を作って見ましたがやりたいことと一致しておりますでしょうか?
Sample-QS-Com-33401
シート1のいずれかの要素をクリックして、「シート2へ遷移」メニューをクリックしてみて下さい。)

対応した内容としては、以下となります。
- シート1のアクションでパラメータ(pCategory)にCategoryの内容をセット
- シート2でCategoryフィルターを、カスタムフィルターとし、パラメータのpCategoryと連動するように設定
- シート2でSubCategory、商品名をそれぞれ、フィルタの設定メニューから、関連値のみ表示で、Category、SubCategoryを設定
1 Like
@Wakana @yusukez
お二人とも返信ありがとうございます!
まさにやりたかったことは @yusukez さんが作ってくださったものと同じものです!
関連する値のみ表示やカスタムフィルターをうまく使いこなせてなかったみたいです。
@yusukez さんの対応を真似させていただいてこちらでもできるか試そうと思います。
またわからないことがあれば追加で質問させていただくかもしれません。
ありがとうございます!
1 Like
すみません、こちら僕が実現したいことでは難しそうでした。
原因は、アクションで遷移する際にカテゴリー名に応じて別シートに遷移する必要があるからです。
教えていただいた方法では、ナビゲーションアクションを使用してパラメータを設定しつつ画面遷移を行なっていると思っているのですが、こちらが実現したいカテゴリ名に応じた遷移はナビゲーションアクションではできないのでURLアクションで計算フィールドで生成した別シートのURLを使用して遷移する方法をとっています。
その際にURLに’<>#p.pCategory=<<category_name>>'のようにパラメータを渡すようにしています。
こちらの方法ではquicksightがパラメータの変更を検知してくれないのか、選択項目の再取得をしてくれないようです。
引き続き調べますが、もし解決策あれば教えていただけると助かります。
こちらの要件整理できておらずお手数おかけしてすみません。
Wakana
6
@kenshin
お手数ですが、URLアクションの設定内容をご教示いただいてもいいですか?
@Wakana
設定内容は
アクティベーション:メニューオプション
アクションタイプ:URLアクション
URL:https://<<category_page_url>>#p.pCategory1=<<category_name1>>&p.pCategory2=<<category_name2>>
展開:同じブラウザタブ
です。
#p.pCategory1=<<category_name1>>&p.pCategory2=<<category_name2>>でカテゴリ名をパラメータに渡しています。パラメータが二つあるのは、ページごとにパラメータを分けるためです。
category_name1とcategory_name2は計算フィールドにしてあります。
衣料品表示用のページのパラメータに電化製品のカテゴリー名が入らないようにするためです。
<<category_page_url>>は以下のような内容の計算フィールドです
ifelse(
contains({category_name}, '衣料品')
,'ap-northeast-1.quicksight.aws.amazon.com/sn/dashboards/hogehoge'
,contains({MEDIA_NAME}, '電化製品')
,'ap-northeast-1.quicksight.aws.amazon.com/sn/dashboards/fugafuga'
,'ap-northeast-1.quicksight.aws.amazon.com/sn/dashboards/piyopiyo'
)
メディア名を見て遷移するシートを切り替えているイメージです。
すみません、これ確認不足でちゃんと試したら思い通りの挙動しました…
すみませんお手数おかけします…
ちなみにコントローラーを画面内に移動させた状態で関連する値のみ表示を選択できるようにするのは不可能なんですかね?
画面内で設定できず、丈夫で設定した状態で画面内に移動させても設定消えちゃってるようでした。
Wakana
9
@kenshin
ご連絡ありがとうございます。思い通りの挙動をしているようでよかったです。
「関連する値のみを表示」機能は、シート内にコントロールを配置しても問題なく稼働するはずですが、コントロールフィルターをシート内に再作成しても表示されないでしょうか?