2016-10-25 26 views
0

私はテーブルにフィールドを持つ販売を持っている:収益、およびCURRENCYCODEDAX 2つのテーブル間の為替レートをどのように計算するのですか?

は、私がフィールドValidFromValidTo一方ExchangeRateで一方ExchangeRateテーブルを持っており、 通貨コード

私は一方ExchangeRate、ValidTo ValidFrom 間と落ちる販売日付と両方のテーブルの試合からCURRENCYCODEによって収入を乗算する必要があります。

+0

お客様のモデルはCurrencyRateとSalesの間にCurrencyCode列を使用して関係していますか? –

+0

いいえ、私は一意のCurrencyCodesでブリッジテーブルを作成できます。 – ronrule

+0

私はそれが厳密に必要ではないと思うが、物事を簡単にする必要があります私の答えを試してくださいそれはあなたのために関係を追加せずに動作することができます。 –

答えて

0

は、あなただけの乗算Rate追加の列またはメジャーでRevenue値によって、その後RateExchangeRateからテーブルを取るためにSalesテーブルに計算列を作成することができます。

Sales計算列でこの表現を使用して、私は今あなたがRevenuneでレートを乗算するための指標を作成することができますExchangeRate

ExchangeRate = 
CALCULATE (
    MAX (ExchangeRate[ExchangeRate]), 
    FILTER (
     FILTER (ExchangeRate, [CurrencyCode] = EARLIER (Sales[CurrencyCode])), 
     [ValidFrom] <= EARLIER (Sales[Date]) 
      && [ValidTo] >= EARLIER (Sales[Date]) 
    ) 
) 

の名前:

RevenueXRateMeasure = SUM(Sales[Revenue])*SUM(Sales[ExchangeRate]) 

それとも、列を好む場合を使用:

RevenueXRateColumn = [Revenue]*[ExchangeRate] 

これは役に立ちます。

+0

EARLIER機能は全く新しいものでした。また、ネストされたFILTERを持つ目的は何ですか? – ronrule

+0

@ronrule、EARLIER関数を使用すると、ExchangeRateテーブルコンテキストからSalesテーブルの列にアクセスできます。内部FILTERはCurrencyCodeがSalesテーブルのCurrencyCodeと同じ行のみを残し、2番目のFILTERはその行を取り、日付範囲にある行をフィルタリングします。 –

関連する問題