PowerBI:使用计算字段获得数据透视表级别的灵活性

Posted

技术标签:

【中文标题】PowerBI:使用计算字段获得数据透视表级别的灵活性【英文标题】:PowerBI: Getting Pivot table level of flexibility with calculated fields 【发布时间】:2018-02-20 09:34:25 【问题描述】:

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

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

用更详细的术语来说,我目前在 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,我的下一步将是:

    使用此视图作为数据源创建数据透视表; 创建如下计算字段 CFE_WeightedAverage = CF_产品/数量 在折线图/组合图上绘制此信息,并打开“日”字段 X 轴。 为所有描述性字段(团队、代理、类别..)放置切片器,以便 用户可以随心所欲地向下钻取/向上钻取。

在 PowerBI 中:

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

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

希望这能更好地阐明我的情况。

【问题讨论】:

您认为 Excel 数据透视表可以做到 Power BI 无法做到的到底是什么?您绝对可以在 Power BI 中使用切片器、向下钻取、计算字段等。 您好,我们会单独回复,为您提供更多详细信息。评论可能太局限了它。 【参考方案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/

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于PowerBI:使用计算字段获得数据透视表级别的灵活性的主要内容,如果未能解决你的问题,请参考以下文章

什么是PowerPivot?和PowerBI什么关系?

powerbi里如何用两列类别筛出后求和

DAX语言(PowerBI)度量值和新建列的区别

比较数据透视表中计算字段中的两列错误

Power BI数据分析案例实战

使用 Excel 中的数据模型创建数据透视表?