計算されるメンバーの定義
計算されるメンバーとは、キューブ データ、算術演算子、数値、関数を組み合わせて定義した、ディメンション グループまたはメジャー グループのメンバーです。 たとえば、キューブ内の 2 つの物理的なメジャーの合計を計算する、計算されるメンバーを作成できます。 計算されるメンバーの定義はキューブ内に保存されますが、その値はクエリ時に計算されます。
計算されるメンバーを作成するには、キューブ デザイナーの [計算] タブで [新しい計算されるメンバー] コマンドを使用します。 計算されるメンバーは、メジャー ディメンションなどの任意のディメンション内に作成できます。 [計算プロパティ] ダイアログ ボックスを使用して、計算されるメンバーを表示フォルダー内に配置することもできます。 詳しくは、「 計算」、「 多次元モデルの計算」、および「 計算されるメンバーの作成」を参照してください。
このトピックの作業では、計算されるメジャーを定義し、インターネット販売、再販業者による販売、およびすべての販売について、売上総利益率と売上比率を表示できるようにします。
物理メジャーを集計する計算の定義
Analysis Services チュートリアル キューブのキューブ Designerを開き、[計算] タブをクリックします。
計算式 ペインと [スクリプト オーガナイザー] ペインには、既定で CALCULATE コマンドが表示されています。 このコマンドは、AggregateFunction プロパティで指定されている値に基づいて、キューブ内のメジャーを集計するように指定します。 通常、メジャー値は合計されますが、他の方法でカウントまたは集計することも可能です。
次の図は、キューブ デザイナーの [計算] タブを示しています。
[計算] タブのツール バーで、 [新しい計算されるメンバー]をクリックします。
計算式 ペインに新しいフォームが表示されます。このフォームで、この新しい計算されるメンバーのプロパティを定義します。 新しいメンバーは [スクリプト オーガナイザー] ペインにも表示されます。
次の図は、 [新しい計算されるメンバー] をクリックしたとき、 計算式ペインに表示されるフォームを示しています。
[ 名前 ] ボックスで、計算されるメジャーの名前を に
[Total Sales Amount]
変更します。計算されるメンバーの名前に空白文字が含まれる場合は、その名前全体を角かっこで囲む必要があります。
[親階層] ボックスを見るとわかるように、既定では、新しい計算されるメンバーは Measures ディメンションに作成されます。 Measures ディメンションの計算されるメンバーは、多くの場合、計算されるメジャーと呼ばれます。
[計算] タブの [計算ツール] ペインで [メタデータ] タブをクリックし、 [Measures] 、 [Internet Sales] の順に展開します。 Internet Sales メジャー グループのメタデータが表示されます。
メタデータ要素を [計算ツール] ペインから [式] ボックスにドラッグし、さらに演算子と他の要素を追加して、多次元式 (MDX) を作成します。 [式] ボックスには、MDX 式を直接入力することもできます。
Note
[計算ツール] ペインにメタデータが表示されない場合、ツール バーの [再接続] をクリックします。 これが機能しない場合は、キューブを処理するか、Analysis Services のインスタンスを開始する必要があります。
[計算ツール] ペインの [メタデータ] タブで [Internet Sales-Sales Amount] をクリックし、 計算式 ペインの [式] ボックスまでドラッグします。
[式] ボックスで、
+
[Measures].[Internet Sales-Sales Amount] の後ろにプラス符号 () を入力します。[計算ツール] ペインの [メタデータ] タブで [Reseller Sales]を展開します。次に、 [Reseller Sales-Sales Amount] を、 計算式 ペインの [式] ボックスにあるプラス符号 (+) の後ろにドラッグします。
[ 書式文字列 ] の一覧で、[通貨] を選択 します。
[空以外の動作] ボックスの一覧で、 Internet Sales-Sales Amount と Reseller Sales-Sales Amountのチェック ボックスをオンにして、 [OK]をクリックします。
[空以外の動作] ボックスで指定したメジャーは、MDX の NON EMPTY クエリを解決するために使用されます。 [空でない動作] ボックスの一覧で 1 つ以上のメジャーを指定すると、指定されたすべてのメジャーが空の場合、Analysis Services は計算されるメンバーを空として扱います。 空でない動作プロパティが空白の場合、Analysis Services は計算されるメンバー自体を評価して、メンバーが空かどうかを判断する必要があります。
次の図は、上記の手順で指定した設定が入力された 計算式 ペインを示しています。
[計算] タブのツール バーにある [スクリプト ビュー]をクリックし、 計算式 ペインで計算スクリプトを確認します。
新しい計算が最初の 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 Data Tools (SSDT) の [ビルド] メニューで、[Analysis Services チュートリアルの配置] をクリックします。
配置が正常に完了したら、 [ブラウザー] タブに切り替えて、 [再接続]をクリックします。
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に変更して、結果を確認します。
アクセサリの売上は毎年増加しているものの、合計売上に占める割合が非常に小さいことがわかります。 また、アクセサリの売上における総利益率は、自転車よりも高くなっています。