2017-10-08 19 views
2

What-Ifパラメータに基づいて条件が異なるPower BIテーブルの行数をカウントする際に問題があります。テーブルの長さは約1100万行ですが、私がしようとしていることの簡単な例を挙げようとします。ポストの長さを許しても、あまりにもあまりにもそれがありません。What-Ifパラメータに基づいて基準に一致するレコードのBI BIカウントインスタンス

データを、それがSQL Serverから入ってくるようには分散が割合としてカテゴリの価格と平均の差の絶対値は、単にある

Item Category Price AvgCatPrice Variance 
Dog  Pet   20.00 15.00   33.33 
Cat  Pet   12.00 15.00   20.00 
Goat Pet   18.00 15.00   20.00 
Maggot Pet   05.00 15.00   66.67 
Apple Fruit  01.00 01.20   16.67 
Orange Fruit  01.20 01.20   00.00 
Mango Fruit  01.30 01.20   08.33 

(明確にするために簡略化)次のようになりますが、それはありません質問に関連します

私はPower Biにデータを読み込み、すべては上記のようになります。

次に、単純計算列をCount =1として追加します。

私は値として行としてCategoryCountでテーブルの上にこれらの値を入れた場合、私は予想通りこれは

Category Count 
Fruit  3 
Pet   4 

を取得します。

次にVarPcと呼ばれるwhat-ifパラメータを0から100の間の5刻みで追加しました。パラメータのスライサーを自動的に追加するオプションを使用しました。

次に、このような新しい列を追加します。

OverVarPc = IF(SOTestDat[Variance] > VarPc[VarPc Value],1,0) 

私はテーブルにこれを追加した場合、私はVarPcがゼロであると仮定すると正しい..which

Category Count OverVarPc 
Fruit  3  2 
Pet   4  4 

を取得します。

最初の問題スライダまたは入力ボックスでパラメータを調整すると、OverVarPc列は再評価されません。

次のアプローチ私は2番目のテーブルを追加しましたが、今度はすべての詳細が表示されます(故意の集計はありません)。 私はその後、私は25%に設定した場合、テーブルは0%

Item Price Variance Count OverVarPc SumIFGt 
Apple 1  16.67  1  1   1 
Cat  12  20   1  1   1 
Dog  20  33.33  1  1   1 
Goat 18  20   1  1   1 
Maggot 5  66.67  1  1   1 
Mango 1.3  8.33  1  1   1 
Orange 1.2  0   1  0   0 

でスライダーで次のようになります定義

SumIFGt = IF((sum(SOTestDat[Variance]) - sum(VarPc[VarPc])) >0,1,0) 

としてこれとSumIfGtと呼ばVarPcテーブルに新しいメジャーを追加しましたテーブルは今このようになります。

Item Price Variance Count OverVarPc SumIFGt 
Apple 1  16.67  1  1   0 
Cat  12  20   1  1   0 
Dog  20  33.33  1  1   1 
Goat 18  20   1  1   0 
Maggot 5  66.67  1  1   1 
Mango 1.3  8.33  1  1   0 
Orange 1.2  0   1  0   0 

どちらの結果も期待通りです。

私はここに行きたいと思っています.... 次号私は元の集計テーブルにこの新しい数値データをドロップしますが、テーブルが表示されます。それは、それはないとして0を返す、その後75を取得した後、行ごとVarPcを集約(3行×25)= 75及び(果実のため)このVarianceSUMを集約し、いない理由

Category Count SumIfGt 
Fruit  3  0 
Pet   4  1 

Iソートの理解しますより大きい。

最後に質問!メジャーの結果の単純なカウントを取得するにはどうすればよいですか。最終的な表で見たいのは、カテゴリー、カテゴリー内の合計アイテム、およびWhat-IFパラメーターよりも分散が大きいアイテムの数です。

もっとたくさんのことをしたいと思っていますが、これが割れると残りの部分が簡単に続くと思います。

これまで読んでくれてありがとう!

答えて

1

私はあなたの代わりに'SOTestDat'に計算された列を追加することで、もし長期的に物事を簡単見つけるかもしれないと思う:Count = 1あなたの代わりに、そのテーブルにメジャーを追加します。

Count = COUNTROWS(SOTestData) 

がこれを行った、あなたのOverVarPc意志

OverVarPc = CALCULATE([Count], FILTER(SOTestDat, SOTestDat[Variance] > VarPc[VarPc Value])) 

F後SOTestDatテーブル内の行をカウントします:あなたは対策として、このような何かを、それを追加した場合、正しく評価します[Variance]が現在の[VarPc Value]メジャーの値より大きい行のフィルタリング。

+0

感謝mendosi、私は今どこが間違っていたのか、もっと重要な理由を理解していると思います。ご協力いただきありがとうございます。 –

関連する問題