Sql PowerPivot计算过滤器无法工作
我有下列表格 订单:Sql PowerPivot计算过滤器无法工作,sql,excel,powerpivot,Sql,Excel,Powerpivot,我有下列表格 订单: OrderID|Cost|Quarter|User ------------------------- 1 | 10 | 1 | 1 2 | 15 | 1 | 2 3 | 3 | 2 | 1 4 | 5 | 3 | 3 5 | 8 | 4 | 2 6 | 9 | 2 | 3 7 | 6 | 3 | 3 目标: UserID|Name |G
OrderID|Cost|Quarter|User
-------------------------
1 | 10 | 1 | 1
2 | 15 | 1 | 2
3 | 3 | 2 | 1
4 | 5 | 3 | 3
5 | 8 | 4 | 2
6 | 9 | 2 | 3
7 | 6 | 3 | 3
目标:
UserID|Name |Goal|Quarter|Sum
-----------------------------
1 |John | 20 | 1 | x
1 |John | 15 | 2 | x
2 |Bob | 12 | 2 | x
2 |Bob | 15 | 3 | x
3 |Homer| 5 | 3 | x
3 |Homer| 7 | 4 | x
现在,我要做的是在第二个表中汇总当前行和当前行中所有具有UserID的订单
我的第一次尝试是:
=计算(总和(订单[成本]);订单[季度]=[季度];订单[用户]=[用户ID])
结果应该是:
UserID|Name |Goal|Quarter|Sum
-----------------------------
1 |John | 20 | 1 | 10
1 |John | 15 | 2 | 3
2 |Bob | 12 | 2 | 15
2 |Bob | 15 | 3 | 8
3 |Homer| 5 | 3 | 11
3 |Homer| 7 | 4 | 0
但是这里我得到了一个错误:列“User ID”找不到,或者在这个表达式中可能没有使用。
为了进行尝试,我使用了固定值:
=计算(总和(订单[成本]);订单[季度]=2;订单[用户]=1)
这不会导致错误消息,但也不会完全正常工作。我现在明白了
UserID|...|Sum
1 |...| 3
1 |...| 3
2 |...|
2 |...|
3 |...|
3 |...|
FYI: the empty space in SUM is really empty.
疯狂的是如果我做了以下事情:
=计算(总和(订单[成本]);订单[季度]=2;订单[用户]=订单[用户])
我得到:
UserID|...|Sum
1 |...| 3
1 |...| 3
2 |...|
2 |...|
3 |...| 11
3 |...| 11
这几乎就是我想要的。但我不明白,为什么有些细胞在工作
有没有办法让这项工作如我所愿?Urganot 如果您充分利用PowerPivot中的所有可用功能(主要是创建的功能),那么所需的输出非常简单 我已经复制了您的数据,但缺少一件事——一个用户表。您可以从数据库/IT部门获得一个,也可以从已有的数据中获得一个。只要确保它不包含任何重复项,否则您将无法定义关系 我在接下来的步骤中使用的数据表如下所示(用户表位于右侧): 将所有表添加到Powerpivot数据模型(Powerpivot功能区->添加到数据模型),切换到图表视图并(只需将UserID从表Orders and Goals拖到Users表)。应该是这样的: 一旦这样做了,就很容易得到你想要的数字。只需定义两个新的计算字段(Powerpivot功能区->计算字段->新计算字段)。确保为用户选择目标表并输入以下公式: 订单价值之和
=SUM(Orders[Cost])
总目标或目标
=SUM(Goals[Goal])
在Excel 2013中,界面如下所示
为了按季度查看数字,您还需要一个具有唯一季度数字的表-只需按照创建用户表的步骤操作即可。同样,在图表视图中链接到其他表,您应该得到以下结果:
将四分之一表用作一个表,可能是分析/过滤数字的最佳方法:
这就是答案:PowerPivot中的关系
否则做起来可能会非常困难,更不用说在开始处理数千行时速度会很慢。我相信这种方法比“旧方法”(嵌套查找和IFs)要好得多
此外,请记住,您使用的数据不是以最佳方式构建的,尤其是季度没有按年份进行区分
无论如何,我希望这能有所帮助——如果有任何不清楚的地方,请在评论部分告诉我。或者直接下载。Urganot 如果您充分利用PowerPivot中的所有可用功能(主要是创建的功能),那么所需的输出非常简单 我已经复制了您的数据,但缺少一件事——一个用户表。您可以从数据库/IT部门获得一个,也可以从已有的数据中获得一个。只要确保它不包含任何重复项,否则您将无法定义关系 我在接下来的步骤中使用的数据表如下所示(用户表位于右侧): 将所有表添加到Powerpivot数据模型(Powerpivot功能区->添加到数据模型),切换到图表视图并(只需将UserID从表Orders and Goals拖到Users表)。应该是这样的: 一旦这样做了,就很容易得到你想要的数字。只需定义两个新的计算字段(Powerpivot功能区->计算字段->新计算字段)。确保为用户选择目标表并输入以下公式: 订单价值之和
=SUM(Orders[Cost])
总目标或目标
=SUM(Goals[Goal])
在Excel 2013中,界面如下所示
为了按季度查看数字,您还需要一个具有唯一季度数字的表-只需按照创建用户表的步骤操作即可。同样,在图表视图中链接到其他表,您应该得到以下结果:
将四分之一表用作一个表,可能是分析/过滤数字的最佳方法:
这就是答案:PowerPivot中的关系
否则做起来可能会非常困难,更不用说在开始处理数千行时速度会很慢。我相信这种方法比“旧方法”(嵌套查找和IFs)要好得多
此外,请记住,您使用的数据不是以最佳方式构建的,尤其是季度没有按年份进行区分
无论如何,我希望这能有所帮助——如果有任何不清楚的地方,请在评论部分告诉我。或者直接下载。谢谢您的努力。这很好用。有人能回答另一个问题吗?如果我想将结果与另一个表的值相乘(这3个表中没有)。我应该作为计算字段、表中的行还是excel中的行来执行此操作?匹配行的值是多少?我将使用UserID匹配行。假设目标值在另一个表中。如何计算总和/目标?我只需将该表链接到Users表,创建一个新的计算字段,它就可以正常工作了。太好了。它起作用了。谢谢在计算了其他一些值之后,我遇到了另一个问题。我想把每个目标行除以所有目标的总和。这不起作用,因为在每一行中只有用户的目标,而不是每个人的总和。还有一种方法可以告诉powerpivot忽略excel中特定列的过滤器吗