养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

Excel:Power Query函数入门

时间:2024-10-04 09:37:31

今天介绍一个PowerQuery中常用的基础函数List.Combine。在PowerQuery中用大括号包含的内容叫List,比如{{1,2},{3,4}}就是一个List,这个List中的每个元素都是一个包含两个值的List。

Excel:Power Query函数入门

Excel:Power Query函数入门

方法/步骤

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

Excel:Power Query函数入门

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

Excel:Power Query函数入门

3、首先,选中数据区域中任意单元格,点击【数据】-【自表格/区域】将数据加载到PowerQuery编辑器中,生成一个名字叫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里的多行转化成一行,由于列名不能重复,因此姓名、性别等列名需要加上4等用来区分家庭里的不同成员。使用Table.ColumnNames函数获取列名,然后转换即可。

Excel:Power Query函数入门

7、letSource=咯悝滩镞Excel.CurrentWorkbook(){[Name="Table1"]}[Content],A=T锾攒揉敫able.Group(Source,"与户主关系",{"New",each[a=Table.ColumnNames(_),b=List.TransformMany({1..Table.RowCount(_)},eacha,(x,y)=>y&Text.From(x))][b]},0,(x,y)=>Number.From(y="户主"))inA

Excel:Power Query函数入门

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

Excel:Power Query函数入门

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

Excel:Power Query函数入门

10、letSource=咯悝滩镞Excel.CurrentWorkbook(){[Name="Table1"]}[Content],A=T锾攒揉敫able.Group(Source,"与户主关系",{"New",(z)=>#table(List.TransformMany({1..Table.RowCount(z)},eachTable.ColumnNames(z),(x,y)=>y&Text.From(x)),{List.Combine(Table.ToRows(z))})},0,(x,y)=>Number.From(y="户主"))inA

Excel:Power Query函数入门

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

Excel:Power Query函数入门

12、最终代码如下:letSourc娣定撰钠e=Excel.CurrentWorkbook(){[Name=&qu泠贾高框ot;Table1"]}[Content],A=Table.Group(Source,"与户主关系",{"New",(z)=>#table(List.TransformMany({1..Table.RowCount(z)},eachTable.ColumnNames(z),(x,y)=>y&Text.From(x)),{List.Combine(Table.ToRows(z))})},0,(x,y)=>Number.From(y="户主"))inTable.Combine(A[New])

Excel:Power Query函数入门

13、个人建议最终效果如图所示。

Excel:Power Query函数入门

© 一点知识