項目、メジャー、変数への参照
数式には、項目、変数、メジャーへの参照を含めることができます。
ほとんどの場合、数式は集計です。つまり、複数のレコードにまたがる可能性のある計算です。これは、数式内のすべての項目参照を集約関数でラップする必要があることを意味します。集計関数を使用しない場合は、Only() 関数を使用します。
メジャーの名前が数式内で使用されている場合、それはメジャーのエイリアスとして解釈されます。これにより、定義済みのエンティティを再利用できます。このようにして、マスター メジャーとチャート メジャーのラベルを使用できます。ただし、チャート メジャーは同じチャート内にある必要があります。他のチャートでメジャーのラベルを使用することはできません。
メジャーを再帰的に定義できます。つまり、メジャーにはそれ自体への参照を含めることができます。ただし、これは行数の少ないチャートでのみ行う必要があります。チャートに多くの行があると、パフォーマンスが低下します。数百の行がある場合、再帰的定義は完全に機能しなくなります。
変数は、直接参照またはドル記号展開の 2 つの異なる方法で使用できます。直接参照を使用する場合は、変数値が計算に使用されます。ドル記号展開を使用する場合、数式が解析される前に、ドル記号展開全体が変数値に置き換えられます。したがって、2 つの異なるメソッドは異なる結果を返す可能性があります。
名前の解釈方法
数式内の名前は、項目、変数、関数、またはメジャーへの参照にすることができます。状況に応じて、名前の解釈は異なります。
文字列 XXX は、項目、変数、関数、またはメジャーを表します。数式の作成方法に応じて、XXX はさまざまな値として解釈されます。
数式 | XXX の解釈 |
---|---|
XXX | メジャー、変数、または項目 |
$(XXX) | 変数 |
Count(XXX) | 項目または変数 |
XXX() | 関数 |
項目と変数 (またはメジャー) に同じ名前を使用しないでください。ただし、そうしてあいまいさが存在する場合は、次の優先順位が使用されます。
-
名前が集計関数内で見つかった場合、項目は変数よりも優先されます。
-
名前が集計関数の外部で見つかった場合、メジャー ラベルは変数名よりも優先され、変数名は項目名よりも優先されます。
数式に関する規則
チャートの数式には次の規則が適用されます。
-
項目参照が集計関数でラップされていない場合、Only() 関数がエンジンによって使用されます。
-
いずれの数式も数値または文字列、あるいはこれらを組み合わせたものを返します。
-
論理関数と演算子は、False の場合は 0、True の場合は -1 を返します。数値から文字列の変換、文字列から数値への変換は、黙示的に行われます。
-
論理演算子と関数は、0 を False、それ以外のすべてを True と解釈します。
-
不正なパラメータや関数の結果など、数式が正しく評価されない場合は NULL を返します。