Skip to main content

1セルの中に[Apple], [Orange], [Grape]などの複数文字列​があるエクセルデータにおいて、Apple, Orange, Grapeを複数選択可能なチェックボックスのフィルターを用意するための計算式を考えております。

 

IF関数で進めてしまうと仮に複数の単語が該当したとしても、上の計算式が優先されてしまうので、Appleが先に来ると、Appleを含むものは他の果物の単語があってもすべてAppleにグループ化されてしまうので、

うまくいかないと思っています。

複数選択させるためのベストな計算式についてお知恵をいただけないでしょうか?

背景的な補足です。個人的には一旦以下のアプローチをしましたが、課題がありました。

1.各文字列のブール値を用意する。例えば以下の果物3種類の計算フィールドを3つ用意する。

  ・[1: Apple]  ⇒ CONTAINS([Fruit],"Apple")

  ・[2: Orange] ⇒ CONTAINS([Fruit],"Orange")​

  ・[3: Grape] ⇒ CONTAINS([Fruit],"Grape")

2.パラメータ"Select Fruit"を用意する。

  ・Value 1, Display As: Apple​

  ・Value 2, Display As: Orange

  ・Value 3, Display As: Grape​​

3.以下の計算フィールドを作り、フィルターに置いてTRUEにする。

  ​CASE [Select Fruit]

  WHEN 1 THEN [1: Apple]=TRUE

  WHEN 2 THEN [2: Orange]=TRUE

  WHEN 3 THEN [3: Grape]=TRUE

​上記によりパラメータのApple or Orange or Grapedどれかを選択すると、各ブール値のTRUEがフィルターとなり、単一選択(ラジオボタン)のフィルターは実現できました。

しかしながら、関係者から、ラジオボダンではなく、複数選択可能なチェックボックスはできないのかと相談されております。

「Appleを含むケース」 OR 「Grapeを含むケース」といった2つ以上をチェックボックスとして選択できる方法を実現したく、今回の相談に至りました。

「Appleを含むケース」 AND 「Grapeを含むケース」ではなく、あくまで複数選択はORの想定です。

24 Antworten
  1. 16. Jan. 2025, 04:56

    Prepを使う場合はExcelデータを読み込んだときに元の行番号を自動で振る機能があるので、それを使ってセッションを識別することができます。

    Prepを使う場合はExcelデータを読み込んだときに元の行番号を自動で振る機能があるので、それを使ってセッションを識別することができます。​今回の要件だけでシンプルに構成した場合のフローは次のような感じになります。キーワードリストを作るのは青いラインで、これはおよそ先に回答した流れのとおりです。上に分岐しているオレンジのラインは結合のための行番号を追加するためのもので、本来はセッションIdがある

    今回の要件だけでシンプルに構成した場合のフローは次のような感じになります。キーワードリストを作るのは青いラインで、これはおよそ先に回答した流れのとおりです。上に分岐しているオレンジのラインは結合のための行番号を追加するためのもので、本来はセッションIdがあるはずなので不要ですが、今回は無いということなのでここで作ります。

    image

    フローファイルを添付しますので、フローの具体的な内容はそちらを見てもらえればと思います。

    ​データの加工が終わったら、出力されたデータをTableauDesktopに接続し、行番号でリレーションを組めばデータソースができます。

    image

    あとはビュー上でキーワードリストのカテゴリでフィルタをかけるなどしてください。

    <apple または grape を含むデータを表示して、且つキーワードごとに行を分ける例>

    image

0/9000