set 修飾子

セットは選択を追加・変更することで修飾できます。そのような修飾子は、set 数式で使用できます。

この修飾子は、項目の選択を定義する値を含む 1 つあるいは複数の項目名で構成されており、それぞれに項目で作られた選択が入ります。すべてが山型かっこの「<」と「>」で囲まれます。例: <Year={2007,2008},Region={US}>。項目名と項目値は通常どおり引用符で囲みます (例: <[Sales Region]={'West coast', 'South America'}>)。

set 修飾子は、以前の set 識別子の選択を修飾します。set 識別子を参照していない場合、現在の選択のステートは黙示的となります。

選択を定義するには、いくつかの方法があります。

  • 他の項目に基づくもの
  • 要素セットに基づいたもの (修飾子の項目値リスト)
  • 強制除外

これらの方法については次の項で説明します。

他の項目に基づくもの

簡単な例としては、<OrderDate = DeliveryDate> などの他の項目の選択値に基づいた選択が挙げられます。この修飾子は、DeliveryDate から選択値を取得し、OrderDate に適用します。200 以上の多くの固有値がある場合、この操作は CPU を集中して使用するため、行わないでください。

要素セットに基づくもの

set 数式の最も一般的な例は、中括弧で囲まれた項目値のリストに基づく数式です。値は、<Year = {2007, 2008}> のようにカンマで区切られています。中括弧により、要素セット (要素は明示的な項目値、または項目の検索値) が定義されます。

リストの値に空白文字または特殊文字が含まれていない限り、引用符は不要です。リストの値は、単に項目値と照合されます。この比較では、大文字と小文字は区別されません。

リストの値に空白文字または特殊文字が含まれている場合、またはワイルド カードを使用する場合は、値を引用符で囲む必要があります。リストの値が明示的な項目値の場合は、単一引用符を使用してください。その場合は、リストの値と個々の項目値が大文字と小文字を区別して照合されます。

検索値 (ワイルドカードを含むか、比較演算子または等号で始まる値) の場合には二重引用符を使用します。例えば、<Ingredient = {"*Garlic*"}> と指定すると、文字列「Garlic」を含むすべての内容物が選択されます。二重引用符は、<Ingredient = {[*Garlic*]}> のように、括弧で置き換えることが可能です。また二重引用符は、<Ingredient = {`*Garlic*`}> のように、抑音アクセントで置き換えることが可能です。検索値では、大文字と小文字が区別されます。

注:

前バージョンの Qlik Sense では、単一引用符と二重引用符の区別はなく、引用符で囲まれたすべての文字列は検索値として扱われていました。下位互換性を維持するため、旧バージョンの Qlik Sense で作成されたアプリは、前バージョンでの動作と同様に動作し続けます。Qlik Sense November 2017 以降で作成されたアプリは、2 種類の引用符の違いを認識します。

強制除外

AND モードの項目では、強制除外も可能です。特定の項目値を強制的に除外したい場合は、項目名の前に「~」を使用します。

注: AND モードは、Qlik Engine API を使用する場合にのみサポートされます。

Examples and results:  

結果
sum( {1<Region= {USA} >} Sales ) 現在の選択を無視して、USA 地域の sales を返します
sum( {$<Region = >} Sales ) 現在の選択における「Region」での選択を除いた sales を返します
sum( {<Region = >} Sales )

上記の例と同じ値が返されます。set 修飾子が省略されている場合は $ と見なされます。

注: 前の 2 つの例にある構文は、「Region」での選択がないと解釈されるので、他の選択によって絞り込まれたすべての Region が可能な値となります。これは、Region がないと解釈される構文 <Region = {}> や、等号の右側にあるテキスト (黙示的に空の要素のセットとなる) とは異なります。
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) 現在の選択における sales が返されますが、「Year」と「Region」で新たな選択が行われます。
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

項目 Ingredient は、AND モードです。

現在の選択から、文字列 garlic を含む Ingredients を強制的に除外した sales が返されます。

sum( {$<Year = {“2*”}>} Sales ) 現在の選択で Year が 2 で始まる slales が返されます。つまり、Year 項目で 2000 年以降が選択されます。
sum( {$<Year = {“2*”,”198*”}>} Sales ) 上記に加え、1980 年代も選択対象となります。
sum( {$<Year = {“>1978<2004”}>} Sales ) 現在の選択の売上を返しますが、数値検索により年度の範囲を定め売上を合計します。