今天介绍Power Query中的一个基础函数List.Combine。在Power Query中,用大括号包围的数据称为列表(List),例如{{1, 2}, {3, 4}}就是一个列表,其中每个元素本身也是包含两个数值的子列表。该函数的作用是将多个子列表合并为一个单一的扁平化列表,常用于数据整理与转换过程中的结构重组。
1、 List.Combine顾名思义,就是将多个列表合并为一个整体。
2、 所示,每户家庭数据中,户主位于首行(如黄色单元格所示),其下为该家庭成员,直至下一户主前。需将每个家庭信息整合为一行展示。
3、 首先选中数据区域中的任一单元格,点击选项卡下的,将数据导入Power Query编辑器,系统将自动生成名为Source的表格。
4、 第二步,通过Table.Group函数,依据与户主关系字段进行分组,特别注意使用该函数的第五个参数。处理后,每个家庭的所有成员均被整合到一个独立的表格中。
5、 按与户主关系对数据源进行分组,保留每组内容并生成新列,排序规则为将户主排在最前,其余按默认顺序排列,最终形成以该字段为键的分组结果。
6、 第三步是将每个表格中的多行数据合并为单行。由于列名不可重复,需在姓名、性别等字段后添加数字1、2、3、4等,以区分家庭成员。可通过调用Table.ColumnNames函数获取原始列名,再进行相应重命名与数据转换操作,最终实现多行信息整合到一行中。
7、 let
8、 将源数据按与户主关系分组,并生成新表,每组包含对应的新字段内容。
9、 [
10、 )
11、 }
12、 将坐标(x,y)处的值判断是否为户主,返回数值结果。
13、 )
14、 in
15、 A
16、 第四步,在生成标题后,需将每个家庭多行成员信息(每人为一个列表)合并为单一列表,此时可使用List.Combine函数实现数据整合,方便后续处理与分析。
17、 将生成的标题与内容合并,形成一行新的表格数据。
18、 let
19、 对源数据按与户主关系分组,并为每组生成新列,内容由函数z确定。
20、 ),
21、 {
22、 }
23、 )
24、 }
25、 根据条件判断,若y等于户主,则返回1,否则返回0。
26、 )
27、 in
28、 A
29、 最后生成New列,合并各家庭的表格数据,统一上传至Excel工作表即可完成操作。
30、 代码如下所示
31、 let
32、 将源数据按与户主关系分组,并生成新字段,每组对应一个新值。
33、 ),
34、 {
35、 }
36、 )
37、 }
38、 根据条件判断,若y等于户主则返回0,否则转换为数值类型。
39、 )
40、 in
41、 建议仅供参考
42、 最终效果见下图。
评论
更多评论