我試圖計算一個DAX中的業務邏輯,事實證明這是相當資源沉重和複雜的。我有一個非常大的PowerPivot模型(稱之爲「銷售」),有許多維度和措施。銷售模式的簡化圖:在Dax中有效計算DISTINCTCOUNT的平均值?
+-------+--------+---------+------+---------+-------+
| State | City | Store | Week | Product | Sales |
+-------+--------+---------+------+---------+-------+
| NY | NYC | Charlie | 1 | A | $5 |
| MA | Boston | Bravo | 2 | B | $10 |
| - | D.C. | Delta | 1 | A | $20 |
+-------+--------+---------+------+---------+-------+
基本上我想要做的是存儲和計算一週產品的DISTINCTCOUNT:
SUMMARIZE(Sales,[Store],[Week],"Distinct Products",DISTINCTCOUNT([Product]))
+---------+------+-------------------+
| Store | Week | Distinct Products |
+---------+------+-------------------+
| Charlie | 1 | 15 |
| Charlie | 2 | 7 |
| Charlie | 3 | 12 |
| Bravo | 1 | 20 |
| Bravo | 2 | 14 |
| Bravo | 3 | 22 |
+---------+------+-------------------+
那麼我想計算其平均值在商店層面的不同產品。我走近這個問題的方法是通過採取前面的計算,並運行在它上面的一個SUMX,並通過不同的幾周將其劃分:
SUMX(
SUMMARIZE(Sales,[Store],[Week],"Distinct Products",DISTINCTCOUNT([Product]))
,[Distinct Products]
)/DISTINCTCOUNT([Week])
+---------+------------------+
| Store | Average Products |
+---------+------------------+
| Charlie | 11.3 |
| Bravo | 18.7 |
+---------+------------------+
我存儲在衡量這個計算和它的工作以及當這些數據較小。但是現在數據集非常龐大,當我嘗試使用這個度量時,它會一直掛起,直到我必須取消這個過程。
有沒有更有效的方法來做到這一點?
注意:當商店/周的組合數量增加到750k時,我纔開始注意到放緩(使用Power BI Desktop) - 這是很多組合(儘管當然性能會因數據而異,數據模型的大小和設計,機器的規格等) – Leonard
謝謝!這個問題是從6個月前開始的,後來我開始轉向一個全新的角色,所以我不能用你的想法測試相同的數據集,但是我真的很欣賞這個輸入。很高興知道我的方法大多是正確的方法,只是希望Powerpivot可以在服務器上運行或者其他東西:) PowerBI絕對是一種選擇,但不幸的是,這必須在Excel電子表格中完成。傷心的是,PowerPivot不支持像PowerBI一樣創建DAX表!這是一個基本特徵。再次感謝。 – RedVII