2017-02-20 10 views
0

私は何時間も私の髪を引っ張ってくれたので助けてくれることを願っています...私はPowerBIに2つのテーブルを持っています。 'Fact_WorstInstance'と呼ばれるものは、(Index、Instance)の行を含んでいます。 'Fact_AllInstances'と呼ばれるものは、(Index、Instance、Value)の行を含んでいます。例えば:DAX:測定結果を使用して、行単位で数値を再計算せずに計算列に入力してください

1,1,'Red' 
1,2,'Green' 
2,1,'Amber' 
2,2,'Red' 
2,3,'Brown' 
3,1,'Green' 
3,2,'Blue' 

最初の表は、本質的に、指定されたインデックス(一部の外部システムによって分類されるように)のための第二のテーブルの中で最悪のエントリへのポインタです。

インデックスがユーザーに表示されるスライサーがあります。

私がしたいのは、 'Fact_WorstInstance'テーブルで最も高い可視インデックスの最悪のインスタンス値を見つけて、そのインスタンスの 'Fact_AllInstances'テーブルからすべてのインデックスと値の行を取得することです。例えば

、スライサありえないフィルタリングは、次に(3,2)「Fact_WorstInstance」テーブルからのアクティブな行をあるべきであり、これは「Fact_AllInstances」テーブルからインスタンス2を取得するために使用されるべきかどう

1,2,'Green' 
2,2,'Red' 
3,2,'Blue' 
'Fact_AllInstances'テーブルの

「Fact_WorstInstance」に最高の表示行を示す数値を作成して、これをさまざまな方法で実行しようとしました。そして、この測定値を使って 'Fact_AllInstances'に計算カラムを作成します.1は最悪、0は最悪ではありません。この計算された列をPowerBIのフィルターとして使用します。

メジャー自体が期待値を示します。私が持っている問題は、指標を計算カラムの作成に使用したときに、計算カラムの行に基づいてフィルタリングされているインデックスを停止する方法が見つからないため、各ローの測定結果が変化することです。

マイ対策:

Worst Entry = CALCULATE(FIRSTNONBLANK(Fact_WorstInstance[Instance],1),filter(ALLSELECTED(Fact_WorstInstance),Fact_WorstInstance[Index]=MAX(Fact_WorstInstance[Index]))) 

私のコラム:代わりに、上記の出力を得ることの

WorstColumn = if(Fact_AllInstances[Instance]=[Worst Entry],1,0) 

だから、私は

1,2を取得し、 'グリーン' 2,1、 'アンバー' - >インデックス2のため、指標が最悪のインデックス1を与えるため 3,2、 'ブルー'

ご協力いただければ幸いです。 ありがとう リッチ

答えて

1

これは、実装する可能性のある解決策です。

まず、計算された列はスライサー/ページフィルターの影響を受けません。そのためのメジャーを作成する必要があります。そのため、問題を解決する方法は機能しません。

一意のインスタンス値を保持する追加の計算テーブルを作成します。 Power BIの[モデリング]タブには、New Tableを作成するためのアイコンがあり、式を使用してテーブルを作成できます。

使用この式:

IsntancesCalcTable = VALUES(Fact_WorstInstance[Instance]) 

今、あなたはあなたのモデルでInstancesCalcTableと呼ばれるテーブルを持っています。

InstancesCalcTableでドラッグInstanceカラムを、これがInstance介しInstancesCalcTableFact_WorstInstanceとの間の関係を作成し、Fact_WorstInstanceInstanceカラムにドロップ。両方のテーブルの間の線は、Relationshipsビューに描画され、その行をダブルクリックすると、Edit Relationshipウィンドウが表示されます。

enter image description here

その後InstancesCalcTableFact_AllInstancesの間の関係を作成するために同じ操作を行います。

が、それはこのようになりますことを確認してください。

あなたは、このようなモデルで終了します:

enter image description here

次に、あなたはスライサーで、Fact_WorstInstance表にIndex列を使用することができますし、それが選択したインスタンスのみを取得するためにFact_AllInstancesテーブルをフィルタリングします。

enter image description here

あなたはどのフィルタを持っていない場合はFact_AllInstances内のすべての行が表示されます。

これが役立つかどうか教えてください。

関連する問題