DAX - 总结不同的粒度级别

时间:2015-12-15 09:51:53

标签: dax

我在Excel 2013中有以下“事实”表:

+----------+-------+-----------+---------------+----------------+
| Employee | Month | Branch_Id | Branch Target | Employee sales |
+----------+-------+-----------+---------------+----------------+
| John     |     1 | A         |           100 |             20 |
| John     |     2 | A         |           100 |             10 |
| Dave     |     1 | B         |            80 |             30 |
| Dave     |     2 | B         |            80 |              5 |
| Paul     |     1 | A         |           100 |             20 |
| Paul     |     2 | A         |           100 |             60 |
+----------+-------+-----------+---------------+----------------+

“Branch Target”列由表“Targets”中的Join子句提供:

+--------+--------+
| Branch | Target |
+--------+--------+
| A      |    100 |
| B      |     80 |
+--------+--------+

现在,我希望动态计算两个字段:“分支目标”和“员工销售”,因此最终输出如下:

+--------+--------+-------+
| Branch | Target | Sales |
+--------+--------+-------+
| A      |    100 |   110 |
| B      |     80 |    35 |
+--------+--------+-------+

我正在努力争取Target coulmn,因为SUM函数会根据Fact表中的所有行进行汇总,也就是说 - 对于分支A,它会产生400.

我想过使用平均值(400/4 = 100)进行调整,但是当我从输出轴移除分支“分组”时,它不是动态解决方案并且不成立。

感谢您的帮助。

阿萨夫

1 个答案:

答案 0 :(得分:1)

从大事实表中删除目标(让我们称之为Sales表)。将目标表添加到Power Pivot。添加一个新表,每个分支有一行,并将其称为分支。 Sales事实表中的分支应该是新分支表的外键。目标表中的分支应该是新分支表的外键。隐藏(右键单击并从客户端工具隐藏)Fact表和目标表中的分支列。为分支目标创建一个简单的总和度量:

Branch Target := SUM('Targets'[Target])

就是这样。基本上将你的原始纹理表加载到Power Pivot中,它将完成其余的工作。

您将在上面注意到的另一个最佳实践是,如果您有两个包含度量的表,则需要具有单独的维度表。