CalcDim - チャート関数
CalcDim() を軸の数式で使用すると、数式の内部処理方法に関するエンジンの自動解釈がオーバーライドされます。具体的には、この関数はデータ モデルに新しい内部項目が作成されるのを防ぎます。代わりに、アプリで実行された選択は、元のデータ モデルの該当する項目の選択として扱われます。
この関数はロードスクリプトでは使用できません。さらに、システム パフォーマンスのベスト プラクティスとして、計算軸で使用される項目を、可能な場合はロード スクリプトを使用して論理項目としてロードすることが挙げられます。CalcDim() は、スクリプトから計算された項目をロードできないシナリオで、エンジンの動作を制御する方法を提供します。
Qlik Sense では、軸の式は既定でオンザフライの項目として扱われます。つまり、必要に応じて生成され、現在の選択バーに表示される実際の項目として扱われます。スクリプトの論理項目と同様に、この項目にもスクリプトによる選択が適用され、推論されます。
CalcDim() で囲まれた式は、QlikView でのすべての計算軸式と同じように動作します。つまり、計算された値を基に、元のソース項目の値に対してアドホックなマッピングが行われます。すべてのオンザフライ計算項目は、CalcDim() 関数を使用して計算軸に変換できます。これは、計算軸のほうが、対応するオンザフライ計算項目に比べて、データモデルに基づく要件が少なくて済むためです。この変換は望ましい場合があります。データ モデルによっては、オンザフライ計算項目の使用がある場合には可能でも、別の場合には不可能になることがあるため、すべての計算軸で同様の動作を保証するためです。
構文:
CalcDim(expr)
戻り値データ型: デュアル
| 引数 | 説明 |
|---|---|
| expr |
軸として、または軸式内のセグメントとして使用される式。 |
CalcDim の使用目的
CalcDim() は、軸式で呼び出す項目の処理方法を Qlik エンジンでさらに制御する必要がある場合に便利です。
既定では、Qlik Sense は、カスタム軸式を使用するときに、データ モデルで内部項目を作成して参照するかどうかを自動的に決定します。Qlik Sense は、可能な場合はいつでもこれらの内部項目を作成して使用します。不可能な場合は、式はそれが依存する既存のデータ モデル項目を参照して処理されます。
ユースケースによっては、この自動処理が必ずしも望ましいとは限りません。たとえば、軸式で変数を使用している場合、新しい項目の自動作成に問題が発生する可能性があります。この場合、CalcDim() を使用して、この方法を使わずに式を処理するようにします。
一般的なユース ケースをいくつか紹介します。
-
QlikView のコンテンツを Qlik Sense に移行しましたが、計算軸に対する QlikView の処理方法を維持するとします。
-
アプリ内の選択動作を簡素化したいと考えています。たとえば、新しい項目での選択として表示するのではなく、元のデータモデルの項目での選択として表示したい場合などです。
-
このユースケースでは、一貫性とパフォーマンスのためにアドホックな式が必要です。たとえば、軸式にユーザーが操作可能な動的ビジュアライゼーションのパラメーター (調整可能な書式、しきい値、期間など) が含まれている場合です。
| 例 | 結果 |
|---|---|
| =CalcDim(if(Year < 2023, 'Older', Year)) |
この軸を使用するビジュアライゼーションでの選択は、データ モデルからの関連する Year 項目値の選択として処理され、表示されます。 逆に、式を CalcDim() で囲まないとします。この場合、次のようになります。 =if(Year < 2023, 'Older', Year) 上記の式で選択を行うと、データ モデルにはない内部項目 =if(Year < 2023, 'Older', Year) の選択として処理され、表示されます。 |