Analysis Services の通貨換算

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Analysis Services では、多次元式 (MDX) スクリプトによって導かれる機能の組み合わせを使用して、複数の通貨をサポートするデータ モデルで通貨換算のサポートを提供します。

通貨換算の用語

通貨換算機能を記述するには、次の用語を使用します。

ピボット通貨 - レート メジャー グループに為替レートが入力される通貨です。

現地通貨 - 換算するメジャーの基準となるトランザクションを格納するために使用される通貨です。

現地通貨は、次のいずれかによって識別できます。

  • トランザクションと共に格納されるファクト テーブル内の通貨識別子。これは、トランザクション自体がそのトランザクションに使用される通貨を識別する銀行取引アプリケーションなどで一般的です。

  • ディメンション テーブルの属性に関連付けられ、その後ファクト テーブルのトランザクションに関連付けられる通貨識別子。これは、場所や子会社などの他の識別子が、関連付けられているトランザクションに使用する通貨を識別する財務アプリケーションなどで一般的です。

レポート通貨 - ピボット通貨からトランザクションを変換する通貨です。

注意

多対一の通貨換算では、ピボット通貨とレポートの通貨は同じになります。

通貨ディメンション - 次の設定で定義されたデータベース ディメンション。

  • ディメンションの Type プロパティが Currency に設定されている。

  • ディメンションの 1 つの属性の Type プロパティが CurrencyName に設定されている。

この属性値を、通貨識別子を含むすべての列で使用する必要があります。

レート メジャー グループ - キューブ内のメジャー グループ。次の設定で定義されます。

  • 通貨ディメンションとレート メジャー グループ間に標準のディメンション リレーションシップが存在する。

  • 時間ディメンションとレート メジャー グループ間に標準のディメンション リレーションシップが存在する。

  • 必要に応じて、 Type プロパティが ExchangeRate に設定される。 ビジネス インテリジェンス ウィザードでは通貨ディメンションおよび時間ディメンションとのリレーションシップを使用して、考えられるレート メジャー グループが識別されますが、 Type プロパティを ExchangeRate に設定すると、クライアント アプリケーションでより簡単にレート メジャー グループを識別できるようになります。

  • レート メジャー グループに含まれている換算レートを表す 1 つまたは複数のメジャー。

レポート通貨ディメンション - 通貨換算の定義後にビジネス インテリジェンス ウィザードによって定義されるディメンションで、その通貨換算のレポート通貨が含まれます。 レポートの通貨ディメンションは、通貨ディメンションのディメンション メイン テーブルから名前付きクエリに基づいて作成され、レート メジャー グループに関連付けられている通貨ディメンションの基になっているデータ ソース ビューで定義されます。 ディメンションは、次の設定を使用して定義されます。

  • ディメンションの Type プロパティが Currency に設定されている。

  • ディメンションのキー属性の Type プロパティが CurrencyName に設定されている。

  • ディメンション内の 1 つの属性の Type プロパティは CurrencyDestination に設定されており、属性にバインドされている列には、通貨換算用のレポートの通貨を表す通貨識別子が含まれている。

通貨換算の定義

ビジネス インテリジェンス ウィザードを使用して通貨換算機能を定義することも、MDX スクリプトを使用して通貨換算を手動で定義することもできます。

前提条件

ビジネス インテリジェンス ウィザードを使用して通貨換算を定義するには、まず、少なくとも 1 つの通貨ディメンション、少なくとも 1 つの時間ディメンション、および少なくとも 1 つのレート メジャー グループを定義する必要があります。 ビジネス インテリジェンス ウィザードでは、レポートの通貨ディメンションおよび MDX スクリプトの作成に使用するデータとメタデータをこれらのオブジェクトから取得し、通貨換算機能を提供できます。

決定事項

ビジネス インテリジェンス ウィザードでレポートの通貨ディメンションと MDX スクリプトを作成し、通貨換算機能を提供するには、次の項目を決定する必要があります。

  • 換算レートの方向

  • 換算されるメンバー

  • 換算の種類

  • 現地の通貨

  • [レポート用の通貨]

為替レートの方向

レート メジャー グループは、現地の通貨とピボット通貨 (通常は会社で使用する通貨と呼ばれます) 間の換算レートを表すメジャーを含んでいます。 ビジネス インテリジェント ウィザードで生成した MDX スクリプトによって換算されるメジャーに対する操作は、換算レートの方向と換算の種類の組み合わせによって決まります。 次の表では、換算レートの方向と換算の種類に応じて実行される操作について説明します。これらの操作は、ビジネス インテリジェンス ウィザードで使用可能な換算レートの方向オプションと換算の方向に基づいています。

多対一 一対多 多対多
n ピボット通貨から 1 サンプル通貨 メジャーをピボット通貨に換算するには、換算するメジャーを現地の通貨の換算レート メジャーと掛け合わせます。 メジャーをレポートの通貨に換算するには、換算するメジャーをレポートの通貨の換算レート メジャーで割ります。 メジャーをピボット通貨に換算するには、換算するメジャーを現地の通貨の換算レート メジャーと掛け合わせ、メジャーをレポートの通貨に換算するには、換算するメジャーをレポートの通貨の換算レート メジャーで割ります。
n 個のサンプル通貨対 1 つのピボット通貨 メジャーをピボット通貨に換算するには、換算するメジャーを現地の通貨の換算レート メジャーで割ります。 メジャーをレポートの通貨に換算するには、換算するメジャーをレポートの通貨の換算レート メジャーと掛け合わせます。 メジャーをピボット通貨に換算するには、換算するメジャーを現地の通貨の換算レート メジャーで割り、メジャーをレポートの通貨に換算するには、換算するメジャーをレポートの通貨の換算レート メジャーと掛け合わせます。

換算レートの方向は、ビジネス インテリジェンス ウィザードの [通貨換算オプションの設定] ページで選択します。 換算方向の設定の詳細については、「 通貨換算オプションの設定 (ビジネス インテリジェンス ウィザード)」を参照してください。

換算されるメンバー

ビジネス インテリジェンス ウィザードを使用すると、値の換算にレート メジャー グループのどのメジャーを使用するかを指定できます。

  • 他のメジャー グループのメジャー

  • データベース ディメンションの勘定科目属性用の属性階層のメンバー

  • データベース ディメンションの勘定科目属性用の属性階層のメンバーが使用する勘定科目の種類

ビジネス インテリジェンス ウィザードでは、ウィザードが生成した MDX スクリプト内でこの情報を使用して、通貨換算の計算の範囲を決定します。 通貨換算のメンバーの指定の詳細については、「メンバーの 選択 (ビジネス インテリジェンス ウィザード)」を参照してください。

変換の種類

ビジネス インテリジェンス ウィザードでは、次の 3 種類の通貨換算がサポートされています。

  • [一対多]

    トランザクションはピボット通貨のファクト テーブルに格納され、1 つまたは複数の他のレポートの通貨に換算されます。

    たとえば、ピボット通貨を米国ドル (USD) に設定し、トランザクションを USD でファクト テーブルに格納するように設定できます。 この種類の換算では、これらのトランザクションが、ピボット通貨から指定のレポートの通貨に換算されます。 その結果、トランザクションは、指定のピボット通貨で格納でき、ピボット通貨、または通貨換算用に定義されているレポートの通貨ディメンションに指定されているレポートの通貨のいずれかで表示できます。

  • 多対一

    トランザクションは、現地の通貨でファクト テーブルに格納され、ピボット通貨に換算されます。 ピボット通貨は、レポートの通貨ディメンションに指定されている唯一のレポートの通貨として機能します。

    たとえば、ピボット通貨を米国ドル (USD) に設定し、トランザクションをユーロ (EUR)、豪ドル (AUD)、およびメキシコ ペソ (MXN) でファクト テーブルに格納するように設定できます。 この種類の換算では、これらのトランザクションは、指定されている現地の通貨から、ピボット通貨に換算されます。 その結果、トランザクションは、指定されている現地の通貨で格納でき、通貨換算用に定義されているレポートの通貨ディメンションに指定されている、ピボット通貨で表示できます。

  • 多対多

    トランザクションは現地の通貨でファクト テーブルに格納されます。 このようなトランザクションは、通貨換算機能によって、ピボット通貨に換算され、その後 1 つまたは複数の他のレポートの通貨に換算されます。

    たとえば、ピボット通貨を米国ドル (USD) に設定し、トランザクションをユーロ (EUR)、豪ドル (AUD)、およびメキシコ ペソ (MXN) でファクト テーブルに格納するように設定できます。 この種類の換算では、これらのトランザクションは、指定されている現地の通貨から、ピボット通貨に換算され、換算されたトランザクションは、ピボット通貨から、指定されているレポートの通貨に再び換算されます。 その結果、トランザクションは、指定されている現地の通貨で格納でき、指定のピボット通貨、または通貨換算用に定義されているレポートの通貨ディメンションに指定されているレポートの通貨のいずれかで表示できます。

変換の種類を指定すると、ビジネス インテリジェンス ウィザードでは、レポートの通貨ディメンションの名前付きクエリおよびディメンション構造に加えて、通貨換算用に定義する MDX スクリプトの構造を定義できるようになります。

現地の通貨

通貨換算に多対多または多対一の種類の換算を選択する場合は、ビジネス インテリジェンス ウィザードで生成した MDX スクリプトが通貨換算の計算を実行するときの現地の通貨を識別する方法を指定する必要があります。 ファクト テーブル内のトランザクションの現地の通貨は、次の 2 種類の方法のどちらかで識別できます。

  • メジャー グループには、通貨ディメンションに対する標準のディメンション リレーションシップが含まれています。 たとえば、Adventure Works DW 多次元 2012 サンプル SQL Server Analysis Services データベースでは、Internet Sales メジャー グループには Currency ディメンションとの標準ディメンション リレーションシップがあります。 このメジャー グループのファクト テーブルは、このディメンションのディメンション テーブル内の通貨識別子を参照する外部キー列を格納します。 この場合は、メジャー グループによって参照されている通貨ディメンションから属性を選択し、そのメジャー グループのファクト テーブル内のトランザクションの現地の通貨を識別できます。 この状況は、トランザクション自体がトランザクションで使用される通貨を判断する銀行取引アプリケーションなどで最もよく発生します。

  • メジャー グループには、通貨ディメンションを直接参照する別のディメンションを介して、通貨ディメンションに対する参照ディメンション リレーションシップが含まれています。 たとえば、Adventure Works DW 多次元 2012 サンプル SQL Server Analysis Services データベースでは、財務レポート メジャー グループには、組織ディメンションを介して Currency ディメンションへの参照ディメンション リレーションシップがあります。 そのメジャー グループのファクト テーブルには外部キー列が含まれており、この列は "組織" ディメンションのディメンション テーブル内のメンバーを参照します。 さらに、組織ディメンションのディメンション テーブルには、通貨ディメンションのディメンション テーブル内の通貨識別子を参照する外部キー列があります。 この状況は、トランザクションの場所または支社によってトランザクションの通貨が決定される財務報告アプリケーションなどで最もよく発生します。 この場合は、通貨ディメンションを参照する属性をビジネス エンティティ用ディメンションから選択できます。

[レポート用の通貨]

通貨変換に多対多または一対多の種類の換算を選択する場合は、ビジネス インテリジェンス ウィザードが生成した MDX スクリプトが通貨換算の計算を実行するときのレポートの通貨を識別する方法を指定する必要があります。 レート メジャー グループに関連する通貨ディメンションのメンバーをすべて指定することも、ディメンションから個別のメンバーを選択することもできます。

ビジネス インテリジェンス ウィザードでは、選択されているレポートの通貨を使用して通貨ディメンション用のディメンション テーブルから作成された名前付きクエリに基づいて、レポートの通貨ディメンションを作成します。

注意

一対多の種類の換算を選択した場合は、レポートの通貨ディメンションも作成されます。 ディメンションにはピボット通貨を表す 1 つのみのメンバーが含まれます。ピボット通貨は、一対多の通貨換算用のレポートの通貨としても使用されるためです。

定義されている通貨換算ごとに、個別のレポート通貨ディメンションが定義されます。 レポートの通貨ディメンションの名前は作成後に変更できますが、変更する場合は、その通貨換算用に生成する MDX スクリプトも更新して、レポートの通貨ディメンションを参照する際にスクリプト コマンドが正しい名前を使用するように設定する必要があります。

複数の通貨換算の定義

ビジネス インテリジェンス ウィザードを使用すると、ビジネス インテリジェンス ソリューションに必要な数の通貨換算をいくつでも定義できます。 既存の通貨換算を上書きするか、MDX スクリプトに新しい通貨換算を追加することができます。 複数の通貨換算を使用すると、国際レポートの複数の個別の変換要件をサポートする財務レポート アプリケーションなど、複雑なレポート要件を持つビジネス インテリジェンス アプリケーションに柔軟性が提供されます。

ビジネス インテリジェンス ウィザードを使用した多次元モデルでの通貨換算

ビジネス インテリジェンス ウィザードでは、通貨換算用のスクリプト コマンドを次のコメントに含めることで、各通貨換算を識別します。

//<Currency conversion>

...

[MDX statements for the currency conversion]

...

//</Currency conversion>

これらのコメントを変更または削除すると、ビジネス インテリジェンス ウィザードでは通貨換算を検出できなくなるので、これらのコメントは変更しないでください。

また、ウィザードではこれらのコメントに、作成日時、ユーザー、換算の種類などのメタデータを格納します。 これらのコメントも、変更しないでください。ビジネス インテリジェンス ウィザードでは既存の通貨換算を表示する際に、このメタデータを使用するためです。

通貨換算に含まれているスクリプト コマンドは、必要に応じて変更できます。 ただし、通貨換算を上書きした場合、変更は失われます。

こちらもご覧ください

Analysis Services のグローバリゼーションのシナリオ