2017-10-11 12 views
2

私は以下のように2つのテーブルを持っています。最初のものは日付のリストで、2番目のものは契約の開始日と終了日の契約のリストです。 2つの日付のrealtionshipsがあるので、テーブルは関連していません。私は毎日どのように多くの契約が開始され、終了したのかを要約する必要があります。これは、計算された列を使用して正常に動作しますが、TypeまたはContractの顧客をスライスしようとすると、ALLSELECTEDが適用されても、Date表の計算列の結果は適用されません。どのようにスライスを取得して、計算された列に戻された行をフィルターに掛けて、契約数がそれに応じて計算されるようにすることができます。ALLSELECTEDは計算カラムに適用されていません

算出列:

StartedContracts = COUNTROWS(FILTER(ALLSELECTED(Contracts), Contracts[StartDate] = DateData[Date])) 

Reproduction PBIX here

Sample layout

答えて

2

これは正しく表示され得るために、簡単な方法は、先に行くと、テーブル間の関係を設定することです。あなたは、アクティブな関係と非アクティブ関係、[StartDate]への積極的な関係と[EndDate]に対して不活性の関係でこのようなものがあるでしょう: multiple relationships set between Contracts and DateData tables

これを行ったので、対策を定義することシンプルそのものです!

StartedContracts = COUNTROWS(Contracts) 
EndedContracts = CALCULATE(COUNTROWS(Contracts), USERELATIONSHIP(Contracts[EndDate], DateData[Date]) 

アクティブな関係がContracts[StartDate]列にあるので、あなたはStartedContractsのために、追加のフィルタを指定する必要はありません。

EndedContractsを計算し、あなただけの以前 Contracts[EndDate]列に定義された非アクティブな関係を使用するように指示する CALCULATE()機能に USERELATIONSHIP()を追加する必要があります。

他の列のスライサーは、期待通りに機能します。

+0

すごくうれしくありがとう。私は2つの非アクティブな関係に行きました。なぜなら、他のビジュアルのために2つのうちの1つで日付をスライスしたくないからです。ありがとう! –

関連する問題