EXCEL|Power Query之合并统计数据




家庭明细是嵌套子表,包含同户所有成员。

我们下面来解析下这个公式:Text.Combine(Table.Column([家庭明细], “成员姓名”), “,”)
这个公式一共 3 层,一层套一层:
第一层:[家庭明细]
意思:当前这一行里,那个嵌套的小表格。分组后得到的列叫 家庭明细;每一行都是一个小表格(装着这一户的所有人)。
第二层:Table.Column([家庭明细], "成员姓名")
意思:从这个小表格里,把「成员姓名」这一列单独拿出来。Table.Column(表格, 列名)= 取表格里的某一列;结果是一个列表:
{“宋太均”, “刘方明”, “宋俊兴”, “陈庆州”}
第三层:Text.Combine(列表, ",")
意思:把上面那一列姓名,用逗号连起来,变成一段文字。输入:{"宋太均","刘方明","宋俊兴","陈庆州"},输出:"宋太均,刘方明,宋俊兴,陈庆州"。
整句连起来翻译(大白话)
Text.Combine(Table.Column([家庭明细], “成员姓名”), “,”)
翻译成人话就是:从当前这一户的小表格里,取出成员姓名这一列,然后用逗号把它们全部拼成一串文字。
最关键的一句话总结
Table.Column( ) 负责取列;Text.Combine( ) 负责拼接。
6)效果如下图所示。然后我们再用添加自定义列的方法,计算出每户人数。操作如下图所示。这个公式,同样需要反复用反复练习,才能记住。

解析公式Table.RowCount([家庭明细])如下:
1. 核心含义
它的作用就是:数一下表里有多少行。在 Power Query 场景里,Table.RowCount([家庭明细]) = 统计这一户一共有多少人。
这个函数由两部分组成:
第一部分:Table.RowCount:表格行数计数。
- 作用:这是 Power Query(M 语言)里的固定函数,专门用来计算一个表格里有多少行数据。
- 类比:就像 Excel 里的 =ROWS(区域)函数一样。
第二部分:[家庭明细]:刚才分组生成的嵌套子表格。
- 作用:它指代的是当前这一行里的那个小表格。对于 “宋太均” 这一行,它指代的是 {宋太均, 刘方明, 宋俊兴, 陈庆州}这 4 个人的信息表。对于 “牛秀云” 这一行,它指代的是 {牛秀云, 陈通泉}这 2 个人的信息表。
7)结果如下图所示。这个时候,这个家庭明细的列就完成了它的使命,我们把它删掉。

8)最终处理结果如下图所示。关闭上传即可。

当然,如果你的Power Query是新版的,那可能就不会面临需要编写公式的问题了。因为新版的已经比较非常智能,一些操作通过选择合并或者拆分,或者自定义就能实现函数能实现的功能了。
无论怎样,大家都需要多练习。
今天的内容就是这些,我们明天见。
夜雨聆风