Excel:Power Query函数入门

2025-11-05 20:55:09

1、List.Combine从字面上也很好理解,就是把多个List合并起来:

Excel:Power Query函数入门

2、如下图是不同家庭的数据,每家户主在第一行(如黄色标注单元格),户主下面到下一个户主之间是该家庭成员。要求每个家庭显示成一行。

Excel:Power Query函数入门

3、首先,选中数据区域中任意单元格,点击【数据】-【自表格/区域】将数据加载到Power Query编辑器中,生成一个名字叫Source的Table。

Excel:Power Query函数入门

4、第二步,用Table.Group函数按“与户主关系”列分组,注意使用Table.Group的第五参数。生成结果如下,每个家庭的成员放进了一个Table。

Excel:Power Query函数入门

5、= Table.Group(Source,"与户主关系",{"New",each _},0,(x,y)=>Number.From(y="户主"))

Excel:Power Query函数入门

6、第三步,要想办法把每个Table里的多行转化成一行,由于列名不能重复,因此姓名、性别等列名需要加上1、2、3、4等用来区分家庭里的不同成员。使用Table.ColumnNames函数获取列名,然后转换即可。

Excel:Power Query函数入门

7、let    

Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],    

A = Table.Group(Source,"与户主关系",{"New",each            

[                

a=Table.ColumnNames(_),                

b=List.TransformMany({1..Table.RowCount(_)},each a,(x,y)=>                    y&Text.From(x)                                   

 )           

 ][b]                                      

 }                                       

,0,(x,y)=>Number.From(y="户主")                          

)

in   

 A

Excel:Power Query函数入门

8、第四步,标题生成以后,还需要把每个家庭多行的人员信息(每个人信息为一个List)连接起来形成一个List,这里就用到了我们介绍的函数List.Combine!

List.Combine(Table.ToRows(_))

Excel:Power Query函数入门

9、第五步,把生成的标题和内容连接起来生成一个新的一行的Table。

Excel:Power Query函数入门

10、let    

Source = Excel.CurrentWorkbook(){[Name="Table1"]

}[Content],    

A = Table.Group(Source,"与户主关系",{"New",(z)=>              

#table(                        

List.TransformMany(                           

 {1..Table.RowCount(z)},each Table.ColumnNames(z),(x,y)=>                      y&Text.From(x)                                         

 ),                        

{                            

List.Combine(Table.ToRows(z))                        

}                   

 )                                      

 }                                    

,0,(x,y)=>Number.From(y="户主")                   

)

in    

A

Excel:Power Query函数入门

11、最后,深化出New列,然后再将每个家庭的Table合并起来再上载到Excel工作表中就可以了。

Excel:Power Query函数入门

12、最终代码如下:

let    

Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],    

A = Table.Group(Source,"与户主关系",{"New",(z)=>              

#table(                       

 List.TransformMany(                            

{1..Table.RowCount(z)},each Table.ColumnNames(z),(x,y)=>                       y&Text.From(x)                                         

 ),                       

 {                            

List.Combine(Table.ToRows(z))                        

}                   

 )                                       

}                                   

 ,0,(x,y)=>Number.From(y="户主")                   

)

in    

Table.Combine(A[New])

Excel:Power Query函数入门

13、个人建议

最终效果如图所示。

Excel:Power Query函数入门

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢