0

使用数据透视表和图表在 Excel 中构建报告的好处(至少对我而言)是,我可以拥有一个计算字段,该字段可以动态地对给定时间显示(切片)的任何内容做出反应。

根据我对 PowerBI 的短暂经验,这似乎是不可能的。 这个讨论似乎在处理相同/相似的问题,并没有带来任何好消息。一般来说,这个问题的目的是了解这种情况是否仍然存在,或者在上述讨论发生后的一年中是否发生了变化。

详细地说,我目前在 Excel 中有一些严重依赖数据透视表和图表的报告。数据源存储在 Access 中。在报告中,我需要显示一些加权平均值。现在,计算的第一步(将值与权重相乘)在 Access 中完成,而在 Excel 中,数据透视表计算字段负责创建除数(产品总和)和除数(权重总和)。由于数据透视表的性质,无论最终用户多么疯狂地使用切片器向下钻取,如果数据的聚合级别高于原始源中的级别,则结果将始终正确,反之亦然。

我还没有找到一种方法来实现与 PowerBi 相同程度的灵活性。有没有通用的解决方案?

--

编辑回复亚历克西斯让我给你一个更具体的例子,这是我在 Access 中的一个视图,它提供一份报告,目的是监控员工的平均处理时间(执行速度)。

Day        |      Month |     Agent |  Team | Category| CategoryDetail| Volume | Time (s) | CF_Product (Volume*Time)
05/01/2018 | 01/01/2018 | JohnSmith | TeamA | Tier1   | Mail          | 15     | 350      | 5250
03/02/2018 | 01/02/2018 | SamAllen  | TeamB | Tier1   | Phone         | 25     | 60       | 1500

CF_Product 的目的是准备加权平均计算。时间(s)是价值,体积是重量。使用 Excel,我的下一步将是:

  1. 使用此视图作为数据源创建数据透视表;
  2. 创建如下计算字段 CFE_WeightedAverage = CF_Product/Volume
  3. 在 X 轴上使用 Day 字段的折线图/组合图上绘制此信息。
  4. 为所有描述性字段(团队、代理、类别..)放置切片器,以便用户可以随意向下钻取/向上钻取。

在 PowerBI 中:

  1. 我在模型中加载视图
  2. 选择组合/折线图
  3. 创建一个计算列,就像我在 Excel CFE_WeightedAverage = CF_Product/Volume 中所做的那样
  4. 在图表的线条部分拖动此字段,

但是,显示的数据是“错误的”。我猜这是因为 excel 中的数据透视表将首先聚合,然后对在给定时间缓存的任何聚合值执行计算,而在 power bi 中,计算将在每一行数据上执行,然后汇总在一起,我不不知道如何解决这个问题。

希望这能更好地澄清我的情况。

4

2 回答 2

1

在 Power BI 中,有度量值和计算列。如果您希望您的计算响应切片器或交叉过滤,那么您需要使用度量而不是计算列,因为后者是在报告页面上发生任何事情之前计算的。

有大量资源可以描述您通过选择的搜索引擎找到的这两者之间的差异。这里有几个来源:

https://www.sqlbi.com/articles/calculated-columns-and-measures-in-dax/ https://powerpivotpro.com/2013/02/when-to-use-measures-vs-calc-columns/

于 2018-02-21T15:55:42.993 回答
0

使用 DAX 公式语言,您可以在 Excel 中的 PowerBI 或 PowerPivot PivotTable 中进行非常强大的计算,这远远超过您在 Excel 中的“传统”数据透视表中所能做的任何事情。PowerBI 和 Excel 在这方面的唯一区别是 UI:Excel 中的数据透视表比 PowerBI 中的矩阵具有更好的“拖放”选项。

您链接到的讨论是关于向下钻取的,似乎与您关于信息动态显示的问题根本不相关。

要回答您关于是否发生任何变化的问题,可以说“否:与传统数据透视表相比,Excel 中的 PowerBI 和 DAX-pimped PivotTables 仍然可以让您更好地控制特定视觉对象或数据透视表中显示的内容”。

于 2018-02-21T19:00:33.550 回答