Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql PowerPivot计算过滤器无法工作_Sql_Excel_Powerpivot - Fatal编程技术网

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中特定列的过滤器吗