計算されるメンバーの定義
計算されるメンバーとは、キューブ データ、算術演算子、数値、関数を組み合わせて定義した、ディメンション グループまたはメジャー グループのメンバーです。 たとえば、キューブ内の 2 つの物理的なメジャーの合計を計算する、計算されるメンバーを作成できます。 計算されるメンバーの定義はキューブ内に保存されますが、その値はクエリ時に計算されます。
計算されるメンバーを作成するには、キューブ デザイナーの [計算] タブで [新しい計算されるメンバー] コマンドを使用します。 計算されるメンバーは、メジャー ディメンションなどの任意のディメンション内に作成できます。 [計算プロパティ] ダイアログ ボックスを使用して、計算されるメンバーを表示フォルダー内に配置することもできます。 詳細については、「計算」、「多次元モデルの計算」、および「計算されるメンバーの作成」を参照してください。
このトピックの作業では、計算されるメジャーを定義し、インターネット販売、再販業者による販売、およびすべての販売について、売上総利益率と売上比率を表示できるようにします。
物理メジャーを集計する計算の定義
Analysis Services Tutorial キューブのキューブ デザイナーを開き、[計算] タブをクリックします。
計算式ペインと [スクリプト オーガナイザー] ペインには、既定で CALCULATE コマンドが表示されています。 このコマンドは、AggregateFunction プロパティで指定されている値に基づいて、キューブ内のメジャーを集計するように指定します。 通常、メジャー値は合計されますが、他の方法でカウントまたは集計することも可能です。
次の図は、キューブ デザイナーの [計算] タブを示しています。
[計算] タブで、ツール バーの [新しい計算されるメンバー] をクリックします。
計算式ペインに新しいフォームが表示されます。このフォームで、この新しい計算されるメンバーのプロパティを定義します。 新しいメンバーは [スクリプト オーガナイザー] ペインにも表示されます。
次の図は、[新しい計算されるメンバー] をクリックしたとき、計算式ペインに表示されるフォームを示しています。
[名前] ボックスに、計算されるメジャーの名前として「[Total Sales Amount]」と入力します。
計算されるメンバーの名前に空白文字が含まれる場合は、その名前全体を角かっこで囲む必要があります。
[親階層] ボックスを見るとわかるように、既定では、新しい計算されるメンバーは Measures ディメンションに作成されます。 Measures ディメンションの計算されるメンバーは、多くの場合、計算されるメジャーと呼ばれます。
[計算] タブの [計算ツール] ペインで [メタデータ] タブをクリックし、[Measures]、[Internet Sales] の順に展開します。Internet Sales メジャー グループのメタデータが表示されます。
メタデータ要素を [計算ツール] ペインから [式] ボックスにドラッグし、さらに演算子と他の要素を追加して、多次元式 (MDX) を作成します。 [式] ボックスには、MDX 式を直接入力することもできます。
注 [計算ツール] ペインにメタデータが表示されない場合、ツール バーの [再接続] をクリックします。 それでも表示されない場合は、キューブを処理するか、Analysis Services のインスタンスを開始する必要があります。
[計算ツール] ペインの [メタデータ] タブで [Internet Sales-Sales Amount] をクリックし、計算式ペインの [式] ボックスまでドラッグします。
[式] ボックスで、[Measures].[Internet Sales-Sales Amount] の後ろにプラス符号 (+) を入力します。
[計算ツール] ペインの [メタデータ] タブで [Reseller Sales] を展開します。次に、[Reseller Sales-Sales Amount] を、計算式ペインの [式] ボックスにあるプラス符号 (+) の後ろにドラッグします。
[書式設定文字列] ボックスの一覧で ["Currency"] をクリックします。
[空以外の動作] ボックスの一覧で、Internet Sales-Sales Amount と Reseller Sales-Sales Amount のチェック ボックスをオンにして、[OK] をクリックします。
[空以外の動作] ボックスで指定したメジャーは、MDX の NON EMPTY クエリを解決するために使用されます。 [空以外の動作] ボックスで 1 つ以上のメジャーを指定すると、指定したメジャーがすべて空である場合に、計算されるメンバーが空として処理されます。 [空以外の動作] プロパティを空白にした場合は、計算されるメンバー自体が評価され、空メンバーであるかどうかが判断されます。
次の図は、上記の手順で指定した設定が入力された計算式ペインを示しています。
[計算] タブのツール バーにある [スクリプト ビュー] をクリックし、計算式ペインで計算スクリプトを確認します。
新しい計算が最初の CALCULATE 式に追加されているはずです。個々の計算はセミコロンで区切られています。 計算スクリプトの冒頭には、コメントが挿入されています。 計算スクリプト内で計算のグループごとにコメントを追加すると、開発者が複雑な計算スクリプトを理解するのに役立ちます。
計算スクリプトで、Calculate; コマンドの後、新しく追加された計算スクリプトの前に新しい行を追加し、その行に以下のテキストを独自の行として追加します。
/* Calculations to aggregate Internet Sales and Reseller Sales measures */
次の図は、チュートリアルのこの時点で計算式ペインに表示される計算スクリプトを示しています。
[計算] タブのツール バーにある [フォーム ビュー] をクリックし、[スクリプト オーガナイザー] ペインで [Total Sales Amount] が選択されていることを確認して、[新しい計算されるメンバー] をクリックします。
この新しく計算されるメンバーの名前を「[Total Product Cost]」に変更します。次に、[式] ボックスで以下の式を作成します。
[Measures].[Internet Sales-Total Product Cost] + [Measures].[Reseller Sales-Total Product Cost]
[書式設定文字列] ボックスの一覧の ["Currency"] をクリックします。
[空以外の動作] ボックスの一覧で、Internet Sales-Total Product Cost と Reseller Sales-Total Product Cost のチェック ボックスをオンにして、[OK] をクリックします。
これで 2 つの計算されるメンバーが定義され、どちらも [スクリプト オーガナイザー] ペインに表示されます。 これらの計算されるメンバーは、計算スクリプト内で後に定義する他の計算で使用することができます。 [スクリプト オーガナイザー] ペインでいずれかの計算されるメンバーを選択すると、その計算されるメンバーの定義を表示できます。計算されるメンバーの定義は、フォーム ビューの計算式ペインに表示されます。 新しく定義した計算されるメンバーは、配置されるまでは [計算ツール] ペインに表示されません。 計算は処理を必要としません。
売上総利益率の計算の定義
「スクリプト オーガナイザー] ペインで [Total Product Cost] が選択されていることを確認し、[計算] タブのツール バーにある [新しい計算されるメンバー] をクリックします。
[名前] ボックスに、この新しい計算されるメジャーの名前として「[Internet GPM]」と入力します。
[式] ボックスで、以下の MDX 式を作成します。
([Measures].[Internet Sales-Sales Amount] - [Measures].[Internet Sales-Total Product Cost]) / [Measures].[Internet Sales-Sales Amount]
[書式設定文字列] ボックスの一覧で ["Percent"] をクリックします。
[空以外の動作] ボックスの一覧で、Internet Sales-Sales Amount のチェック ボックスをオンにして、[OK] をクリックします。
[計算] タブのツール バーで、[新しい計算されるメンバー] をクリックします。
[名前] ボックスに、この新しい計算されるメジャーの名前として「[Reseller GPM]」と入力します。
[式] ボックスで、以下の MDX 式を作成します。
([Measures].[Reseller Sales-Sales Amount] - [Measures].[Reseller Sales-Total Product Cost]) / [Measures].[Reseller Sales-Sales Amount]
[書式設定文字列] ボックスの一覧で ["Percent"] をクリックします。
[空以外の動作] ボックスの一覧で、Reseller Sales-Sales Amount のチェック ボックスをオンにして、[OK] をクリックします。
[計算] タブのツール バーで、[新しい計算されるメンバー] をクリックします。
[名前] ボックスに、この新しい計算されるメジャーの名前として「[Total GPM]」と入力します。
[式] ボックスで、以下の MDX 式を作成します。
([Measures].[Total Sales Amount] - [Measures].[Total Product Cost]) / [Measures].[Total Sales Amount]
この計算されるメンバーは、他の計算されるメンバーを参照しています。 この計算されるメンバーは、参照している計算されるメンバーの後に計算されるため、有効な計算されるメンバーになります。
[書式設定文字列] ボックスの一覧で ["Percent"] をクリックします。
[空以外の動作] ボックスの一覧で、Internet Sales-Sales Amount と Reseller Sales-Sales Amount のチェック ボックスをオンにして、[OK] をクリックします。
[計算] タブのツール バーで [スクリプト ビュー] をクリックし、計算スクリプトに追加した 3 つの計算を確認します。
計算スクリプトの [Internet GPM] の計算の直前に新しい行を追加して、その行に以下のテキストを独自の行として追加します。
/* Calculations to calculate gross profit margin */
次の図は、新しい 3 つの計算が表示されている計算式ペインを示しています。
全体に対する比率の計算の定義
[計算] タブのツール バーで、[フォーム ビュー] をクリックします。
[スクリプト オーガナイザー] ペインで [Total GPM] をクリックし、[計算] タブのツール バーにある [新しい計算されるメンバー] をクリックします。
[スクリプト オーガナイザー] ペインで最後の計算されるメンバーをクリックしてから [新しい計算されるメンバー] をクリックすると、新しい計算されるメンバーがスクリプトの末尾に挿入されます。 スクリプトは、[スクリプト オーガナイザー] ペインに表示される順序で実行されます。
この新しい計算されるメンバーの名前を「[Internet Sales Ratio to All Products]」に変更します。
[式] ボックスに以下の式を入力します。
Case When IsEmpty( [Measures].[Internet Sales-Sales Amount] ) Then 0 Else ( [Product].[Product Categories].CurrentMember, [Measures].[Internet Sales-Sales Amount]) / ( [Product].[Product Categories].[(All)].[All], [Measures].[Internet Sales-Sales Amount] ) End
この MDX 式は、インターネット販売の合計売上に占める各製品の割合を計算します。 Case ステートメントを ISEMPTY 関数と共に使用すると、製品の売上がない場合でも、ゼロによる除算のエラーが発生しません。
[書式設定文字列] ボックスの一覧で ["Percent"] をクリックします。
[空以外の動作] ボックスの一覧で、Internet Sales-Sales Amount のチェック ボックスをオンにして、[OK] をクリックします。
[計算] タブのツール バーで、[新しい計算されるメンバー] をクリックします。
この計算されるメンバーの名前を「[Reseller Sales Ratio to All Products]」に変更します。
[式] ボックスに以下の式を入力します。
Case When IsEmpty( [Measures].[Reseller Sales-Sales Amount] ) Then 0 Else ( [Product].[Product Categories].CurrentMember, [Measures].[Reseller Sales-Sales Amount]) / ( [Product].[Product Categories].[(All)].[All], [Measures].[Reseller Sales-Sales Amount] ) End
[書式設定文字列] ボックスの一覧で ["Percent"] をクリックします。
[空以外の動作] ボックスの一覧で、Reseller Sales-Sales Amount のチェック ボックスをオンにして、[OK] をクリックします。
[計算] タブのツール バーで、[新しい計算されるメンバー] をクリックします。
この計算されるメンバーの名前を「[Total Sales Ratio to All Products]」に変更します。
[式] ボックスに以下の式を入力します。
Case When IsEmpty( [Measures].[Total Sales Amount] ) Then 0 Else ( [Product].[Product Categories].CurrentMember, [Measures].[Total Sales Amount]) / ( [Product].[Product Categories].[(All)].[All], [Measures].[Total Sales Amount] ) End
[書式設定文字列] ボックスの一覧で ["Percent"] をクリックします。
[空以外の動作] ボックスの一覧で、Internet Sales-Sales Amount と Reseller Sales-Sales Amount のチェック ボックスをオンにして、[OK] をクリックします。
[計算] タブのツール バーで [スクリプト ビュー] をクリックし、計算スクリプトに追加した 3 つの計算を確認します。
計算スクリプトで、[Internet Sales Ratio to All Products] 計算の直前に新しい行を追加して、その行に以下のテキストを独自の行として追加します。
/* Calculations to calculate percentage of product to total product sales */
これで、合計 8 つの計算されるメンバーを定義しました。これらはフォーム ビューの [スクリプト オーガナイザー] ペインに表示されます。
新しい計算されるメンバーの表示
SQL Server データ ツール (SSDT) で、[ビルド] メニューの [Analysis Services Tutorial の配置] をクリックします。
配置が正常に完了したら、[ブラウザー] タブに切り替えて、[再接続] をクリックします。
Excel アイコンをクリックし、[有効化] をクリックします。
[ピボットテーブルのフィールドの一覧] ペインで [Values] を展開して、メジャー ディメンションの新しい計算されるメンバーを表示します。
Total Sales Amount を値領域にドラッグして、結果を確認します。
Internet Sales および Reseller Sales メジャー グループから Internet Sales-Sales Amount および Reseller Sales-Sales Amount メジャーを値領域にドラッグします。
Total Sales Amount メジャーは、Internet Sales-Sales Amount メジャーと Reseller Sales-Sales Amount メジャーの合計になっています。
Product Categories ユーザー定義階層をレポート フィルター領域のフィルター領域に追加し、[Mountain Bikes] でデータをフィルター処理します。
製品売上の計算対象が Mountain Bikes カテゴリになります。つまり、Mountain Bikes の Internet Sales-Sales Amount メジャーと Reseller Sales-Sales Amount メジャーに基づいて Total Sales Amount が計算されます。
Date.Calendar Date ユーザー定義階層を行ラベル領域に追加して、結果を確認します。
今度は、Mountain Bikes の Internet Sales-Sales Amount メジャーと Reseller Sales-Sales Amount メジャーに基づき、Mountain Bikes カテゴリを対象とした製品売上が年度ごとに計算され、Total Sales Amount として表示されます。
Total GPM、Internet GPM、および Reseller GPM メジャーを値領域に追加して、結果を確認します。
次の図のように、再販業者による売上の売上総利益率は、インターネットでの販売と比べて著しく低くなっています。
Total Sales Ratio to All Products、Internet Sales Ratio to All Products、および Reseller Sales Ratio to All Products メジャーを値領域に追加します。
全製品の合計売上に占めるマウンテン バイクの売上の比率は、インターネット販売では毎年増加しているのに対し、再販業者販売では減少しています。 全製品の合計売上に占めるマウンテン バイクの売上の比率は、インターネット販売の場合よりも、再販業者販売の場合の方が低いことにも注目してください。
フィルターを [Mountain Bikes] から [Bikes] に変更して、結果を確認します。
再販業者によるすべての自転車の販売に関する売上総利益率は負の値になっています。これはツーリング バイクおよびロード バイクの販売が赤字であるためです。
フィルターを [Accessories] に変更して、結果を確認します。
アクセサリの売上は毎年増加しているものの、合計売上に占める割合が非常に小さいことがわかります。 また、アクセサリの売上における総利益率は、自転車よりも高くなっています。