Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

計算要素の定義

この章では、計算要素を定義する方法を説明します。以下の項目について説明します。

計算要素は、ピボット・テーブルの定義の一部として保存される (そのピボット・テーブルでのみ使用可能) か、または共有領域に保存される (同じキューブに基づくすべてのピボット・テーブルで使用可能) かのいずれかになります。

概要

多くの場合、既存のモデル要素を新規要素に組み合わせると便利です。DeepSee では、以下の 2 種類の計算要素を追加できます。

  • 他のメジャーに基づく新しいメジャーを定義できます。例えば、以下のような数式でメジャーを定義できます。

    Measure 3 = (Measure 1 + Measure 2) / Measure 2)
    

    これは正確な構文ではありません。以下のセクションで詳細を説明します。

  • 他のメンバに基づく新しいメンバを定義できます。例えば、Favorite Color ディメンジョンの redyellow、および blue のメンバを結合する Primary Colors メンバを作成できます。

    この新しい Primary Colors メンバは、redyellow、または blue のメンバに属するすべての患者を参照します。

MDX では、メジャーはメンバと見なされます。また、両方の種類の計算要素が計算メンバと見なされます。このドキュメントでは、計算メジャーという語句を使用して、メジャーである計算メンバを示します。

計算メジャーの定義

他のメジャーに基づくメジャーを定義する手順は以下のとおりです。

  1. 指定されたピボット・テーブルでのみこのメジャーを定義する場合、そのピボット・テーブルを保存します。

  2. 計算要素ボタン generated description: button calc member をクリックします。

    次のダイアログ・ボックスが表示されます (ここでは一部分のみ示しています)。

    generated description: calcmember

  3. [メンバ・タイプ] で、[メジャー] をクリックします。

    クリックすると、[ディメンジョン] オプションの [メジャー] が自動的に選択されます。

  4. 必要に応じて、[共有ストレージ] を選択します。DeepSee は、以下のようにこのオプションを使用します。

    • [共有ストレージ] が選択されていない場合、計算メジャーはピボット・テーブルの定義と共に保存され、このピボット・テーブルでのみ使用できます。

    • [共有ストレージ] が選択されている場合、計算メジャーは共有領域に保存され、同じキューブに基づくすべてのピボット・テーブルで使用できます。この場合、アナライザは、キューブ自体で定義されている要素と共に計算メジャーを表示します。

  5. [メンバ名] に、新しいメジャーの名前を入力します。

  6. 新しいメンバを定義する MDX 式を指定します。そのためには、以下のいずれかの操作を行います。

    • [式] に式を直接入力します。

    • 式ビルダを使用します。このツールは、キューブの任意の部分に対して正しい MDX 識別子を容易に取得できるようにすることを目的としています。このツールにアクセスするには、[式] の横にある虫眼鏡をクリックします。左側の領域には、すべてのメジャーおよびレベルを含むキューブのコンテンツがリストされます。右側の領域には、作成している式が表示されます。項目を式に追加するには、項目を左側の領域から式にドラッグ・アンド・ドロップします。項目は、式の最後に追加されますが、式の別の部分に移動することも可能です。

    これらの式の概要については、最初のサブセクションを参照してください。

  7. 必要に応じて、以下の追加オプションを指定します。

    • [形式] — このメジャーの表示方法を制御する形式文字列を指定します。このドキュメント内で前述の “形式文字列の指定” を参照してください。

    • [順序の解決] — 計算メンバを列に、競合する計算メンバ (または、他の種類の計算メンバ) を行に持つピボット・テーブルの場合、これを使用します。2 番目のサブセクションを参照してください。

  8. [OK] をクリックします。

[モデル・コンテンツ] ペイン[メジャー] セクション内に、新しいメンバが表示されます。

generated description: modelcont new measure

このメジャーは、他のメジャーを使用する場合と同じ方法で使用できるようになります。

メジャー式

メジャーの式には、以下の要素を含めることができます。

  • メジャーへの参照。構文は、以下のとおりです。

    [MEASURES].[measure name]
    

    または

    MEASURES.[measure name]
    

    メジャー名が英数字のみで構成され、先頭が数字でなく、MDX の予約語でない場合は、メジャー名を囲む角括弧を省略できます。(MDX 文と関数は予約語です。DeepSee MDX リファレンスの目次を参照してください。)

    式では、大文字と小文字は区別されません。

  • 数値リテラル。例えば、37 です。

  • ピボット変数。次の章を参照してください。

    ピボット変数を参照するには、構文 $variable.variablename を使用します。variablename はロジカル変数名です。この構文では大文字と小文字は区別されません。

  • 算術演算子。DeepSee では、+ (加算)、- (減算)、/ (除算)、および * (乗算) の標準的な算術演算子がサポートされます。また、+ (正)、および - (負) の標準単項演算子もサポートされます。

    例えば、MEASURES.[%COUNT] / 100 です。

    優先順位を制御する括弧も使用できます。

  • 数値を返す MDX 関数。AVGMAXCOUNT など、MDX 関数の多くが数値を返します。詳細は、"DeepSee MDX リファレンス" を参照してください。

他のバリエーションおよび特定のレシピについては、"DeepSee モデルの定義" の “計算メンバの定義” を参照してください。

順序の解決

[順序の解決] オプションは、計算メンバ (メジャーまたはメジャー以外) を列に、競合する計算メンバを行に持つピボット・テーブルの場合に役立ちます。

このオプションは、システムによるセルの値およびセルに適用する形式の決定方法に影響します。既定の動作は以下のとおりです。

  • [形式] を決定します。

  • 両方の計算メンバがメジャーである場合は、がセルの値を決定します。(シナリオによってはロジックがさらに複雑になり、[順序の解決] が適用されません。)

行によって形式と値を決定する場合は、[順序の解決] が、行に使用する計算メンバのものよりも大きい必要があります。

[順序の解決] の大きい計算メンバは最後に評価され、結果を制御しますが、1 つの例外があります。行または列で %CELL 関数が使用されている場合、その暗黙的な既定の [順序の解決] は 10 になります。

行と列の両方で %CELL が使用されており、行によって値と形式文字列を決定する場合は、行の [順序の解決] を 11 に設定します。

行と列のメンバの [順序の解決] が同じ場合は、既定の場合と同様に、列のメンバが結果を制御します。

Tip:

計算メジャーが他の計算メジャーに依存する場合、システムは依存関係を認識して適切な順序でメジャーを評価します。これらのメジャーに [順序の解決] を使用する必要はありません。

メジャーでない計算メンバの定義

他のメンバに基づく計算メンバを定義する手順は以下のとおりです。

  1. 指定されたピボット・テーブルでのみこのメンバを定義する場合、そのピボット・テーブルを保存します。

  2. 計算要素ボタン generated description: button calc member をクリックします。

  3. [メンバ・タイプ] で、[ディメンジョン] をクリックします。

  4. 必要に応じて、[共有ストレージ] を選択します。DeepSee は、以下のようにこのオプションを使用します。

    • [共有ストレージ] が選択されていない場合、計算メジャーはピボット・テーブルの定義と共に保存され、このピボット・テーブルでのみ使用できます。

    • [共有ストレージ] が選択されている場合、計算メジャーは共有領域に保存され、同じキューブに基づくすべてのピボット・テーブルで使用できます。この場合、アナライザは、キューブ自体で定義されている要素と共に計算メジャーを表示します。

  5. [ディメンジョン] で、ディメンジョンを選択するか、または新しいディメンジョンの名前を入力します。例えば、Calculated などです。

    非計算メンバが含まれている既存のディメンジョンや新規のディメンジョンなど、任意のディメンジョンを指定できます。

  6. [メンバ] に、新しいメンバの名前を入力します。

  7. 新しいメンバを定義する MDX 式を指定します。そのためには、以下のいずれかの操作を行います。

    • [ディメンジョン・レベル] からレベルを選択します。ステップ 3 で選択したディメンジョンから任意のレベルを選択できます。次に、[既存のメンバ] を使用して、そのレベルの 1 つ以上のメンバを選択します。

      DeepSee によって [式] フィールドに MDX セット式が作成されます。

      次に、[式] フィールド内の式を編集します。

    • [式] に式を直接入力します。

    • 式ビルダを使用します。このツールは、キューブの任意の部分に対して正しい MDX 識別子を容易に取得できるようにすることを目的としています。このツールにアクセスするには、[式] の横にある虫眼鏡をクリックします。左側の領域には、すべてのメジャーおよびレベルを含むキューブのコンテンツがリストされます。右側の領域には、作成している式が表示されます。項目を式に追加するには、項目を左側の領域から式にドラッグ・アンド・ドロップします。項目は、式の最後に追加されますが、式の別の部分に移動することも可能です。

    これらの式については、このセクションで後述します。

  8. 必要に応じて、以下の追加オプションを指定します。

    • [形式] — このメンバの数値の表示方法を制御する形式文字列を指定します。このドキュメント内で前述の “形式文字列の指定” を参照してください。

    • [順序の解決] — この計算メンバを評価する相対順序 (同じセルに影響する他の計算メンバと比較) を指定するための数を選択します。この章で前述した “順序の解決” を参照してください。

  9. [OK] をクリックします。

[モデル・コンテンツ] ペイン[ディメンジョン] セクションで、新しいメンバが使用可能になります。

このメンバを既存のディメンジョンに追加すると、そのディメンジョンのすべてのレベル内にリストされます。新しいディメンジョンに追加すると、この新しいディメンジョンはこのペインの末尾に表示されます。例えば、以下は 2 つの計算メンバが含まれた新しいディメンジョンを示しています。

generated description: modelcont calcdimension

これらのメンバは、他のメンバを使用する場合と同じ方法で使用できます。

通常、他のメンバを結合する新しいメンバを定義します。これらの場合、以下のいずれかの構文を使用します。

  • すべてを結合するメンバが同じレベルに属する場合、%OR 関数を以下のように使用します。

    %OR({member reference, member reference, ...})
    

    以下はその例です。

    %OR({[colord].[h1].[favorite color].[red],
    [colord].[h1].[favorite color].[blue],
    [colord].[h1].[favorite color].[yellow]})
    

    メンバ参照の一般的な構文は以下のとおりです。

    [dimension name].[hierarchy name].[level name].[member name]
    

    または

    [dimension name].[hierarchy name].[level name].&[member
    key]
    
  • 前述した特殊な場合のように、時間レベルのメンバの範囲を結合するメンバを定義できます。そのためには、%TIMERANGE 関数を使用します。これによって、範囲の片側を定義できます。例えば、以下の式により 2009 メンバの後に開始する範囲を定義します。

    %TIMERANGE(DateOfSale.YearSold.&[2009],,EXCLUSIVE)
    
  • それ以外は、AGGREGATE 関数を以下のように使用します。

    AGGREGATE({member reference, member reference, ...})
    

他のバリエーションおよび特定のレシピについては、"DeepSee モデルの定義" の “計算メンバの定義” を参照してください。

計算メンバの再定義

計算メンバを再定義するには、以下の操作を実行します。

  1. [モデル・コンテンツ] ペインで計算メンバを選択します。

  2. 計算要素ボタンgenerated description: button calc memberをクリックします。

  3. 必要に応じて変更します。

計算メンバの削除

計算メンバを削除するには、以下の操作を実行します。

  1. [モデル・コンテンツ] ペインで計算メンバを選択します。

  2. [X] ボタンをクリックします。

  3. [OK] をクリックし、この削除を確定します。

FeedbackOpens in a new tab