DAX - 不同粒度级别的汇总
DAX - Summarize on different granularity level
我在 Excel 2013 年有以下 "fact" table:
+----------+-------+-----------+---------------+----------------+
| 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" 由来自 table "Targets":
的 Join 子句传送
+--------+--------+
| Branch | Target |
+--------+--------+
| A | 100 |
| B | 80 |
+--------+--------+
现在我想对"Branch Target"和"Employee Sales"两个字段进行动态计算,所以最终输出结果如下:
+--------+--------+-------+
| Branch | Target | Sales |
+--------+--------+-------+
| A | 100 | 110 |
| B | 80 | 35 |
+--------+--------+-------+
我正在努力处理目标库,因为 SUM 函数将根据它在事实中出现的所有行进行汇总 table 并且 - 即 - 对于分支 A,它将产生 400。
我想过使用平均值 (400/4 = 100) 来调整它,但它不是一个动态解决方案,当我从输出枢轴中删除分支 "grouping" 时它不成立。
感谢您的帮助。
阿萨夫
从大事实 table 中删除目标(我们称之为销售 table)。将目标 table 添加到 Power Pivot。添加一个新的 table,每个分支一行,并将其称为分支。 Sales 事实 table 中的分支应该是新分支 table 的外键。目标 table 中的分支应该是新分支 table 的外键。隐藏(右键单击并从客户端工具中隐藏)事实 table 和目标 table 中的分支列。为您的 Branch 目标创建一个简单的求和度量:
Branch Target := SUM('Targets'[Target])
就是这样。基本上将您的 tables 以其原生粒度加载到 Power Pivot 中,它将完成剩下的工作。
您会在上面注意到的另一个最佳实践是,如果您有两个带有度量的 table,则您需要有一个单独的维度 table。
我在 Excel 2013 年有以下 "fact" table:
+----------+-------+-----------+---------------+----------------+
| 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" 由来自 table "Targets":
的 Join 子句传送+--------+--------+
| Branch | Target |
+--------+--------+
| A | 100 |
| B | 80 |
+--------+--------+
现在我想对"Branch Target"和"Employee Sales"两个字段进行动态计算,所以最终输出结果如下:
+--------+--------+-------+
| Branch | Target | Sales |
+--------+--------+-------+
| A | 100 | 110 |
| B | 80 | 35 |
+--------+--------+-------+
我正在努力处理目标库,因为 SUM 函数将根据它在事实中出现的所有行进行汇总 table 并且 - 即 - 对于分支 A,它将产生 400。
我想过使用平均值 (400/4 = 100) 来调整它,但它不是一个动态解决方案,当我从输出枢轴中删除分支 "grouping" 时它不成立。
感谢您的帮助。
阿萨夫
从大事实 table 中删除目标(我们称之为销售 table)。将目标 table 添加到 Power Pivot。添加一个新的 table,每个分支一行,并将其称为分支。 Sales 事实 table 中的分支应该是新分支 table 的外键。目标 table 中的分支应该是新分支 table 的外键。隐藏(右键单击并从客户端工具中隐藏)事实 table 和目标 table 中的分支列。为您的 Branch 目标创建一个简单的求和度量:
Branch Target := SUM('Targets'[Target])
就是这样。基本上将您的 tables 以其原生粒度加载到 Power Pivot 中,它将完成剩下的工作。
您会在上面注意到的另一个最佳实践是,如果您有两个带有度量的 table,则您需要有一个单独的维度 table。