フィルターのドロップダウン形式の選択項目を、URLから渡されるパラメータに合わせて動的に切り替えたい

■ やりたいこと
フィルターのドロップダウン形式の選択項目の候補を動的に変更したいです。
別シートから遷移してくる際にURLから渡されたパラメータに応じてデータを絞り込むため、フィルターの選択項目も絞り込んだデータに対応させたいためです。
具体的な例でお話しすると、以下のようなデータセットの場合に

Category, SubCategory, ItemName, 
電化製品,スマートフォン, 商品A
電化製品,スマートフォン, 商品B
電化製品,ノートパソコン, 商品C
衣料品,ジーンズ, 商品D
衣料品,Tシャツ, 商品E
  • 遷移する際に、Category というパラメータを渡す

  • 渡された Category パラメータに応じてデータセットをフィルタして表示する

  • 例) Category = 衣料品 ならば、ジーンズと Tシャツのデータを出す

  • Category で絞られたうえで、さらにページ内でSubCatgoryで絞るようにフィルタコントロールを表示する

  • 例) Category = 衣料品 のときには、[ジーンズ, Tシャツ] のみが候補の SubCatgory フィルタを作る

  • 例) Category = 電化製品 ならば、[スマートフォン, ノートパソコン] が候補の SubCatgoryフィルタを作る

ということがやりたいです。

■ 困っていること
上記やりたいことを満たせなくて困っています。
具体的には、パラメータに応じてフィルタの中身を動的に切り分けたいが、初回データセット読み込み時のままドロップダウンの内容が固定されてしまう。

  • 例) Category = 衣料品 のときに、[スマートフォン, ノートパソコン, ジーンズ, Tシャツ] が候補の SubCatgory フィルタが作られてしまう。

■ ためしたこと

  • フィルタ機能を用いて ItemName 普通に絞り込もうとする

    • 上述の通り固定されてしまい動的に変わらなかった => NG
  • パラメータ (Category) をコントロール化する

    • ページ遷移時のパラメータ (Category) をコントロール化
    • パラメータのコントロールと、フィルタのコントロールを関連づける
    • => パラメータのコントロールを直接変更したときは、フィルタ側も動的に変更された => OK
    • => ただし、ページ遷移でパラメータが変わった時には、フィルタ側は変更されなかった => NG

@kenshin

QuickSight Communityにご質問いただき、ありがとうございます!

データセットのパラメータではなく、分析のパラメータのみで実装した場合はどうでしょうか?

CategoryとSubCategoryでぞれぞれコントロールが作成されており、「関連する値のみを表示」機能を使用されておられますでしょうか?

@kenshin

以下、Sample を作って見ましたがやりたいことと一致しておりますでしょうか?

Sample-QS-Com-33401

シート1のいずれかの要素をクリックして、「シート2へ遷移」メニューをクリックしてみて下さい。)

image

対応した内容としては、以下となります。

  • シート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がパラメータの変更を検知してくれないのか、選択項目の再取得をしてくれないようです。

引き続き調べますが、もし解決策あれば教えていただけると助かります。
こちらの要件整理できておらずお手数おかけしてすみません。

@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'
)

メディア名を見て遷移するシートを切り替えているイメージです。

すみません、これ確認不足でちゃんと試したら思い通りの挙動しました…
すみませんお手数おかけします…

ちなみにコントローラーを画面内に移動させた状態で関連する値のみ表示を選択できるようにするのは不可能なんですかね?
画面内で設定できず、丈夫で設定した状態で画面内に移動させても設定消えちゃってるようでした。

@kenshin

ご連絡ありがとうございます。思い通りの挙動をしているようでよかったです。

「関連する値のみを表示」機能は、シート内にコントロールを配置しても問題なく稼働するはずですが、コントロールフィルターをシート内に再作成しても表示されないでしょうか?