在PowerBI中,数据的聚合指的是对数据做求和、中值、最大值、最小值、平均值以及计数等,接下来通过具体的场景分别介绍几种聚合的常用方式以及他们的优缺点。
一、常见数据聚合方式
首先是在PowerBI中较为常见的数据聚合,比如在我们使用视觉对象“表”时,有些数值类型的数据在加入表后会显示为“Sum of XXX”,通常会默认求和;文本类型的数据,如“标题”等,会显示为“Count of XXX”等,这是比较常见且常用的数据聚合方式之一。
二、函数聚合方式
在PowerBI中使用函数进行数据聚合时,需要对数据聚合函数的用法有一定的了解,比如常用的SUM、AVERAGE、MAX、MIN、COUNT等,基本与Excel中的用法类似,Power BI Desktop中聚合函数使用如下图所示。
三、PowerQuery中聚合
在PowerQuery中可以有多种聚合方式,比如有以下场景:数据表A中拥有下图中的相关字段数据,其中TimeByDay和ResourceName数据列唯一标识数据表A中的数据。
数据表B中同样存在TimeByDay和ResourceName,且能够唯一标识数据,其包含以下数据列,如下图。
场景:一个资源对应一天的标准工时是8小时,而且该资源的工时投入总和刚好是8工时,即一个任务上投入1.5工时、另外一个任务上投入6.5工时,在数据表B中显示为两条数据,此时我们需要将这两个表中的数据按照TimeByDay和ResourceName两个字段进行合并。这里如果直接进行合并,会对表B中的两条数据都匹配8工时的值,在后期的报表制作中会导致显示数据的不准确,比如在对资源进行工时汇总查看等。
解决:这里可以有两种聚合方法可以将这两条数据进行合并,需要在PowerQuery编辑器中进行操作,一种是在进行数据合并后,在展开合并表时选择聚合,另外一种是在合并前将表B中的数据进行聚合,接下来会分别讲解这两种方法。
1、展开合并表时聚合
首先是表A和表B合并后,展开合并表时进行聚合,数据表A在合并数据表B后,会以整个表B展示在表A中,此时需要我们将表B中的数据进行展开,在展开数据表B时会显示“Expand”以及“Aggregate”,这里需要我们选择“Aggregate”,之后选择下方需要展开的数据列即可,可以看到这里的聚合方式主要是两种,分别是Sum和Count,这里对于数值列默认会是Sum,文本类型的列默认会是Count,可以根据实际需要在具体数据列的右侧进行聚合方式的选择,如下图所示。
这里最大的不足是:选择多条需要聚合的数据,在加载到模型中耗时较长,原因是在进行合并表之前分别对两个表进行了多次的数据合并以及调整等,组合后计算量较大,减少加载时长的主要方式是将表中多余的数据列进行备份后删除,以及减少合并前对表的合并等操作,还包括对数据值的正确性进行验证,比如确保数据加载时数据不会报错,以上操作很大程度上减少了加载的时长。
2、合并前进行聚合
在进行合并表前进行单表的数据合并,这里的主要聚合方式是使用“Group By”功能,比如在数据表B中使用“Group By”将数据进行求和,该功能比较简单、实用但容易被忽略,这里会详细介绍该功能。
“Group By”主要包含“Basic”、“Advanced”两个方面,“Basic”和“Advanced”的主要功能方面无较大区别,“Advanced”可以实现多个聚合列同时设置,包括“Add grouping”,即聚合后要保留的数据列;“Add aggregation”,即添加要聚合的数据列,可设置多条,同样可以选择多种聚合方法。
“Group By”的主要优势是处理速度相比前一种方式较快,而且操作简单易懂,避免使用公式进行数据处理。
聚合且合并后的数据表如下图所示。
以上便是有关数据聚合的相关PowerBI数据处理内容。