nori
October 28, 2024, 5:54am
1
お世話になります。
シート内のデータに複数(10個ほど)のフィルターを設定しており
それぞれのフィルタの組み合わせで必要な条件での表示を行っております。
フィルタの組み合わせ条件が複数あるため、ひとつづつ設定すると閲覧者の作業がふえてしまいます。
複数のフィルタを一括で設定する方法はないでしょうか?
フィルタをかけた状態でブックマークへの登録も検討しましたが、ダッシュボードでしか設定ができず、閲覧者ごとの設定になると思います。
作成者側でフィルタの状態を設定しておきたいのでこの方法以外でご教授いただけると幸いです。
Wakana
October 28, 2024, 7:29am
2
@nori
一括設定はできないのですが、フィルターをパラメータにリンクさせていれば、パラメータのデフォルト値を設定することで、最初にダッシュボードを表示したときにそのデフォルト値でのフィルターで表示させることができます。デフォルト値は、静的に設定することもできますし、ユーザーやグループに応じた動的なデフォルト値を設定可能です。それで代替できないでしょうか?
nori
October 29, 2024, 2:14am
3
ご回答ありがとうございました。
動的フィルタでも実現したいこととは異なるので他に何かできないか考えてみます。
ありがとうございました。
1 Like
@nori
QuickSightではダッシュボードのURLに対しパラメータを付加することで、
ダッシュボードが開いた際のQuickSight内パラメータのデフォルト値を設定することも可能です。
※"&"でつなぐことで複数パラメータを同時に設定することも可能です。
これを用いて、作成者側で予めURLパラメータ付のショートカットを(必要なパターン数分)用意したうえで、閲覧者に配布するということで、実現したいことのソリューションとなりえそうでしょうか?
参考イメージ図
@nori
タイトルとご質問から想像するに、以下のような要件を想像いたしました。
・フィルタ組み合わせのパターンは決まっている。ただし、パターンAからパターンBに切り替える際に10個ほどのフィルタをそれぞれ操作しなくてはいけないため、利用者体験が悪い
・可能であれば、10個のフィルタではなく1個のコントロールを操作するだけで、パターンAからパターンBへと切り替えられるようにしたい
上記である場合、少し煩雑な設計でもよろしければ、計算フィールドをパラメータと組み合わせる方法はいかがでしょうか。
パラメータを作成します。例:filterPatternForXXX
計算フィールドを以下のように作成します。名前を仮にcalculateFieldForFilterPatternとします。
ifelse(
${filterPatternForXXX} = “All”, “Y”,
${filterPatternForXXX} = “Pattern A” and [パターンAで利用したい10個のフィールドの組み合わせ], “Y”,
${filterPatternForXXX} = “Pattern B” and [パターンBで利用したい10個のフィールドの組み合わせ], “Y”,
…,
“N”)
calculateFieldForFilterPattern = “Y” をフィルタとして指定します。
こうすることで、利用者はfilterPatternForXXXのパラメータを操作するだけで、各フィルタパターンに応じた絞り込みが実現できると思います。
1 Like
nori
November 5, 2024, 2:25am
6
ryosask様
ご提案ありがとうございます。
まさに私が実現したいことそのもので大変助かります。
しかしながら私自身の知識が乏しく、実際にどのように実装してよいかが理解できておりません。
色々とトライしてみたのですが、
[パターンAで利用したい10個のフィールドの組み合わせ]は、実際にどのように記載すればよろしいのでしょうか。
and[フィールド名1=“指定したい文字列1”,フィールド名2=“指定したい文字列2”・・・]
だとエラーた出てしまいました。
また、 「3. calculateFieldForFilterPattern = “Y” をフィルタとして指定します。」
もうまく理解できておりません。
可能であればフィールド2、3個程度で良いので簡単な具体事例で記載方法をご教授いただけると助かります。
知識不足で大変申し訳ありませんが、よろしくお願いいたします。
@nori
こんな形でいかがでしょうか?データはオンラインで公開されているものを使いました。
1-1. FilterPatternForCustomerGroupというパラメータを作成しました。String(文字列)タイプで、Single value(一つの値のみを取る)です。デフォルト値は「選択してください」としました。
1-2. 同パラメータはコントロールにDropdownとして追加しました。特定の値の定義は「選択してください」「アメリカの事務用品」「ヨーロッパのクレカ決済」の3パターンとしました。
calculateFieldForFilterPatternを以下の式で作成しました。
ifelse(
${filterPatternForCustomerGroup} = "選択してください", "Y",
${filterPatternForCustomerGroup} = "アメリカの事務用品" AND Country = "United States" AND Category = "Stationery", "Y",
${filterPatternForCustomerGroup} = "ヨーロッパのクレカ決済" AND (Country = "France" OR Country = "Germany" OR Country = "Italy") AND PaymentMethod = "Credit Card", "Y",
"N")
ここでは、以下のような対応となっています。
[パターンAで利用したい10個のフィールドの組み合わせ] = Country = “United States” AND Category = “Stationery”
[パターンBで利用したい10個のフィールドの組み合わせ] = (Country = “France” OR Country = “Germany” OR Country = “Italy”) AND PaymentMethod = “Credit Card”
各パターンをコントロールで選択した際に、それぞれの条件に一致する場合、一致するものはYというラベルが付与され、それ以外はNというラベルが付与されます。このラベルを用いて3で絞り込みを行います。
以下の図のように、calculateFieldForFilterPattern = “Y” をフィルタとして設定します。
こちらでいかがでしょうか?分かりづらい箇所ございましたら遠慮なくお申し付けください。
イメージ図
2 Likes
nori
November 5, 2024, 5:40am
8
ryosask様
ご丁寧なご説明ありがとうございます。
ご教授いただいた内容に沿って設定したところ無事に実現することができました。
ifelseの中の記載方法が良くなかったようです。
ご提示いただいたサンプルを参考して無事解決できました。
この度はご丁寧な対応いただきありがとうございました。
1 Like