本文的数据下载地址:https://download.csdn.net/download/weixin_44435602/16128564
1、从官方给出summarizecolumns的解释:
返回组组的摘要表
语法: SUMMARIZECOLUMNS( <groupBy_columnName> [, < groupBy_columnName >]…, [<filterTable>]…[, <name>, <expression>] …)
参数
groupBy_columnName 对 基表的完全限定的列引用(表 [ 列 ] ),其返回的表中包含不同的值 。 每个 groupBy_columnName 列都与后 续 指定的列交叉 联接(不同的表)或自 动 共存(相同的表)。filterTable 添加到指定 为 groupBy_columnName 参数的所有列的 筛选 上 下文中的表表达式。 筛选 器表中存在的 值 用于在 执 行交叉 联 接/ 自 动 共存之前 进 行 筛选 。name 表示要用于指定的后 续 表达式的列名称的字符串。表达式 任何返回单个值(而不是表)的 DAX 表达式。
返回值
一个表,它根据指定的分 组 包含所提供列的 值 的 组 合。 返回的表中 仅 包含符合后列条件的行:提供的表达式种至 少有一个为 其返回非空 值 。 如果一行的所有表达式的 计 算 结 果都 为 BLANK/NULL , 则该 行不包含在返回的表中。
2、以实例来理解
summarizecolumns返回的是一张表
2.1、单列去重
有这样一张表,想要得到一张姓名不重复的表
格式:SUMMARIZECOLUMNS('表名'[列名])
2.2、多列去重
格式:SUMMARIZECOLUMNS('表名'[列名],'表名'[列名],...)
2.3、分组求和
求个人分别在2019和2020的期末总成绩
格式:SUMMARIZECLOUMNS('表名'[列名],...,"汇总列列名",表达式)
分析这条语句:
1:是前面说的去重
2:是汇总列的列名
3:这个是成绩之和的度量值,可以先单独求出来
2.4、有条件的分组求和
求个人数学单科成绩
格式:SUMMARIZECLOUMNS('表名'[列名],...,filter('表名','表名'[列名]="条件"),"汇总列列名",表达式)