4. ROLLUP
A. 语法
ROLLUP ( <GroupBy_ColumnName> [, <GroupBy_ColumnName> [, … ] ] )
位置 | 参数 | 描述 |
---|---|---|
第1参数 | GroupBy_ColumnName | 可重复汇总的依据列名 |
B. 返回
仅返回小计,不返回可被引用的具体值
C. 注意事项
- 只有在SUMMARIZE函数中使用。
- 如果分组依据有多列,而RollUp未汇总全部列,则汇总未选择列。(可以看案例加深理解)
D. 作用
返回小计汇总
E. 案例
表3
RollUp案例Summarize('表3',
Rollup('表3'[姓名]),
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名]
RollUp结果1
RollUp结果2解释:
因为RollUp包含了全部的汇总依据的组,所以返回时多了一个姓名小计。
Summarize('表3',
Rollup('表3'[姓名]),'表3'[学校],'表3'[学科],
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名],'表3'[学校],'表3'[学科]
解释:
因为RollUp只选择了姓名字段,未选择全部字段,所以返回的是未选择字段的小计。也就是学校和学科小计。
5. ROLLUPGROUP
A. 语法
ROLLUPGROUP ( <GroupBy_ColumnName> [, <GroupBy_ColumnName> [, … ] ] )
B. 返回
返回分组依据的小计汇总,不返回可被引用的具体值
C. 注意事项
- 仅在SUMMARIZE和ADDMISSINGITEMS函数中使用。
- 如果和RollUp用法一样,效果也类似同RollUp。
- 如果嵌套RollUp使用,用于内部小计及小计汇总。RollUp(RollupGroup(分组字段))
- 嵌套的时候根据选择字段来计算。如果和RollUp一致则效果一致,如果范围不一样则效果不一样。
D. 作用
一般用于过程检查以及链接回表
E. 案例
表3
RollUpGroup案例- 单独使用效果和RollUp一样
Summarize('表3',
Rollup('表3'[姓名]),'表3'[学校],
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名]
Summarize('表3',
RollupGroup('表3'[姓名]),'表3'[学校],
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名]
RollupGroup结果1
解释:
RollupRroup单独使用,效果和RollUp一样。因为未选择全部列,所以返回的是未选择列的汇总也就是学校的小计。
- 嵌套使用(RollupRound需嵌套在RollUp内)——分组字段范围一致
Summarize('表3',
Rollup(RollupGroup('表3'[姓名],'表3'[学校])),
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名],'表3'[学校]
RollUpGroup结果2
解释:
根据2个字段,姓名和学校进行的汇总,然后再对2个字段的小计进行汇总。
- 嵌套使用(RollupRound需嵌套在RollUp内)——分组字段范围不一致
Summarize('表3',
Rollup(RollupGroup('表3'[姓名]),'表3'[学校]),
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名],'表3'[学校]
RollUpGroup结果3
解释:
先汇总姓名,学校的值;然后在小计姓名的值;最后返回姓名小计的汇总。
网友评论