Power Pivot中3大汇总函数对比解释及使用介绍

2019-05-31  本文已影响0人  Data_Skill

1. Summarize

A. 语法

SUMMARIZE ( <Table>, <GroupBy_ColumnName> [, [<Name>] [, [<Expression>] [, <GroupBy_ColumnName> [, [<Name>] [, [<Expression>] [, … ] ] ] ] ] ]  )
位置 参数 描述
第1参数 Table 需要操作的表
第2参数 GroupBy_ColumnName 分组的依据(可以有多个)
可选第3参数 Name 分组后的新列名,可以有多个汇总(文本格式)
可选第4参数 Expression 新增列的表达式,可以有多个

B. 返回

表——包含汇总依据及新列名的表

C. 注意事项

D. 作用

创建按指定列分组后的计算表达式汇总

E. 案例

表3


Summarize案例数据Summarize案例数据
Summarize('表3',
        '表3'[学科],
        "平均成绩",Average('表3'[成绩])
          ) 

返回结果:


Summarize结果1Summarize结果1

按不同学校学科的学科平均成绩,则需要添加2个汇总依据,一个是学校,一个是学科。

Summarize('表3',
               '表3'[学校],'表3'[学科],
               "平均成绩",Average('表3'[成绩])
          ) 

返回结果:


Summarize结果2Summarize结果2

如果是使用AddColumns方式来进行的话

var 
a=Summarize('表3','表3'[学科])
return
AddColumns(a ,
           "平均成绩",
           Calculate(Average('表3'[成绩]))
           )

解释:因为涉及到上下文的原因,所以在Average求平均的时候嵌套了Calculate进行上下文转换。

2. SummarizeColumns

A. 语法

SUMMARIZECOLUMNS ( <GroupBy_ColumnName>, [<FilterTable>] , [<Name>] [, [<Expression>] [, <GroupBy_ColumnName> [, [<FilterTable>] [, [<Name>] [, [<Expression>] [, … ] ] ] ] ] ] ] ] ] )
位置 参数 描述
可重复第1参数 GroupBy_ColumnName 分组依据,可重复。可用于小计和总计函数
可选重复第2参数 FilterTable 可对原表进行筛选
可选第重复3参数 Name 新增加的列名
可选重复第4参数 Expression 新增加的列的内容表达式

B. 返回

表——基于指定分组列计算值的表。

C. 注意事项

D. 作用

返回的计算值为非空值的分组。

E. 案例

表3


SummarizeColumns案例数据SummarizeColumns案例数据
SummarizeColumns('表3'[姓名])
SummarizeColumns结果1SummarizeColumns结果1

解释:
相当于分类汇总标题,也就是姓名去重。

SummarizeColumns('表3'[姓名],
                 Filter('表3','表3'[学校]="1中")
                )
SummarizeColumns结果2SummarizeColumns结果2

解释:
先筛选出学校为1中的数据,然后再同归汇总来得到不重复的姓名。

SummarizeColumns('表3'[姓名],
                 Filter('表3','表3'[学校]="1中"),
                 "成绩",Sum('表3'[成绩])
                )

解释:
在得到汇总姓名后再去求成绩。但是因为无值这个成绩为空,所以在汇总的时候就不显示,直接去除。

SummarizeColumns('表3'[姓名], '表3'[学校], 
                 Filter('表3','表3'[学校]="1中"),
                 "成绩",Sum('表3'[成绩])
                 )
SummarizeColumns结果3SummarizeColumns结果3

解释:增加学校作为筛选汇总的依据。

SummarizeColumns('表3'[姓名], '表3'[学校], 
                   Filter('表3','表3'[学校]="2中"),
                      "总成绩",Sum('表3'[成绩]),
                      "平均成绩", Average('表3'[成绩])
                 )
SummarizeColumns结果4SummarizeColumns结果4

解释:
先根据筛选学校是2中的,然后根据姓名和学校来进行分组,最后增加2个字段,一个是总成绩,一个是平均成绩。

3. GroupBy

A. 语法

GROUPBY ( <Table> , <GroupBy_ColumnName> [, [<Name>] [, [<Expression>] [, <GroupBy_ColumnName> [, [<Name>] [, [<Expression>] [, … ] ] ] ] ] ] ] )
位置 参数 描述
第1参数 Table 分组的表
第2可选重复参数 GroupBy_ColumnName 分组依据的列
第3可选重复参数 Name 增加列的名称,文本格式
第4可选重复参数 Expression 增加列的计算表达式

B. 返回

表——由分组列及添加表达式的列组成。

C. 注意事项

D. 作用

返回按指定列分组后计算的表达式结果

E. 案例

SummarizeColumns案例数据SummarizeColumns案例数据
GroupBy ( '表3', 
          '表3'[姓名], 
          "总成绩", SumX ( CurrentGroup(), '表3'[成绩] )
         )
GroupBy结果GroupBy结果

解释:通过姓名进行分组汇总,并计算当前汇总数据表的成绩合计。功能在某些地方和SummarizeColumns以及Summarize类似,在汇总时如果值为空的话,也会忽略汇总,所以姓名为无值的这里也依旧不显示。

上一篇下一篇

猜你喜欢

热点阅读