ROLLUP ( <GroupBy_ColumnName> [, <GroupBy_ColumnName> [, … ] ] )
位置 | 参数 | 描述 |
---|---|---|
第1参数 | GroupBy_ColumnName | 可重复汇总的依据列名 |
仅返回小计,不返回可被引用的具体值
返回小计汇总
表3
Summarize('表3',
Rollup('表3'[姓名]),
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名]
解释: 因为RollUp包含了全部的汇总依据的组,所以返回时多了一个姓名小计。
Summarize('表3',
Rollup('表3'[姓名]),'表3'[学校],'表3'[学科],
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名],'表3'[学校],'表3'[学科]
解释: 因为RollUp只选择了姓名字段,未选择全部字段,所以返回的是未选择字段的小计。也就是学校和学科小计。
ROLLUPGROUP ( <GroupBy_ColumnName> [, <GroupBy_ColumnName> [, … ] ] )
返回分组依据的小计汇总,不返回可被引用的具体值
一般用于过程检查以及链接回表
表3
Summarize('表3',
Rollup('表3'[姓名]),'表3'[学校],
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名]
Summarize('表3',
RollupGroup('表3'[姓名]),'表3'[学校],
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名]
解释: RollupRroup单独使用,效果和RollUp一样。因为未选择全部列,所以返回的是未选择列的汇总也就是学校的小计。
Summarize('表3',
Rollup(RollupGroup('表3'[姓名],'表3'[学校])),
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名],'表3'[学校]
解释: 根据2个字段,姓名和学校进行的汇总,然后再对2个字段的小计进行汇总。
Summarize('表3',
Rollup(RollupGroup('表3'[姓名]),'表3'[学校]),
"总成绩",
Sum('表3'[成绩]))
Order By '表3'[姓名],'表3'[学校]
解释: 先汇总姓名,学校的值;然后在小计姓名的值;最后返回姓名小计的汇总。
ROLLUPADDISSUBTOTAL ( [<GrandtotalFilter>], <GroupBy_ColumnName>, <Name> [, [<GroupLevelFilter>] [, <GroupBy_ColumnName>, <Name> [, [<GroupLevelFilter>] [, … ] ] ] ] )
位置 | 参数 | 描述 |
---|---|---|
可选第1参数 | GrandtotalFilter | 总计的筛选 |
可重复第2参数 | GroupBy_ColumnName | 返回的列名 |
可重复第3参数 | Name | 增加的列名 |
可选第4参数 | GroupLevelFilter | 筛选应用于当前级别 |
增加一列判断是否是总计
只能用于SUMMARIZECOLUMNS函数中
判断是否为总计。
SummarizeColumns(RollupAddisSubtotal('表3'[姓名],"判断"),'表3'[学校],
"总成绩",
Sum('表3'[成绩]))
在小计的同时加上一列作为判断当前汇总时是否是小计。
ADDMISSINGITEMS ( [<ShowAll_ColumnName> [, <ShowAll_ColumnName> [, … ] ] ], <Table> [, <GroupBy_ColumnName> [, [<FilterTable>] [, <GroupBy_ColumnName> [, [<FilterTable>] [, … ] ] ] ] ] ) )
位置 | 参数 | 描述 |
---|---|---|
可选重复第1参数 | ShowAll_ColumnName | 返回度量值为空的列 |
可选第2参数 | Table | 度量值计算的表 |
可选重复第3参数 | GroupBy_ColumnName | 分组依据的列 |
可选重复第4参数 | FilterTable | 筛选的表 |
表——需要显示的列及汇总依据列及值生成的表。
如果和ROLLUPISSUBTOTAL和ISSUBTOTAL函数一起使用,参数要一致
重新添加包含空度量值的行
AddMissingItems ('表3'[姓名],
SummarizeColumns( '表3'[姓名],
"总成绩",
Sum ( '表3'[成绩] )
),
'表3'[姓名]
)
解释: 如果单纯通过SummarizeColumns函数进行分组的话,如果计算值为0的话,分组的内容会缺失,但是通过AddMissingItems函数可以进行恢复。上面姓名为无值这项因为成绩为空,通过此函数可以在分组汇总后进行恢复显示。
ROLLUPISSUBTOTAL ( [<GrandtotalFilter>], <GroupBy_ColumnName>, <IsSubtotal_ColumnName> [, [<GroupLevelFilter>] [, <GroupBy_ColumnName>, <IsSubtotal_ColumnName> [, [<GroupLevelFilter>] [, … ] ] ] ] )
位置 | 参数 | 描述 |
---|---|---|
可选第1参数 | GrandtotalFilter | 应用于汇总行的筛选 |
可重复第2参数 | GroupBy_ColumnName | 汇总依据的列 |
可重复第3参数 | IsSubtotal_ColumnName | 增加一列判断是否汇总 |
可选第4参数 | GroupLevelFilter | 筛选应用于当前级别 |
不返回值,仅标记是否小计
只在ADDMISSINGITEMS内使用。
将汇总组合添加的列配对,返回一个逻辑值。
AddMissingItems (
'表3'[姓名],
SUMMARIZECOLUMNS ( ROLLUPADDISSUBTOTAL('表3'[姓名],"判断"), "总成绩", SUM ( '表3'[成绩] ) ),
'表3'[姓名]
)
解释: 添加判断一列去判断是否汇总小计,返回逻辑值。同时因为addmissingitems的原因把无成绩的这个也显示出来了。当然无度量的也就不存在判断不判断了,所以判断这里为空。
如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。