你们好,最近小时发现有诸多的小伙伴们对于power query入门到实战80篇,power query这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、 列表。Combine从字面上也很好理解,就是合并多个列表:
2、 下图是不同家庭的数据。每个户主在第一排(如黄色标注的牢房),家庭成员在户主以下至下一个户主。每个族都需要显示为一行。
3、 首先,选择数据区域中的任意单元格,然后单击“数据-来自表/区域”将数据加载到超级查询编辑器中,以生成名为Source的表。
4、 第二步,用桌子。Group函数根据“与户主的关系”一栏进行分组,注意Table.Group的第五个参数,结果如下:每个家庭成员放入一个表。
5、 =table. Group (source,' relationship with householder, {'New' each_}, 0, (x, y)=Number. From(y=' head of household'))
6、 第三步是想办法将每个表中的多行转换成一行。因为列名不能重复,所以姓名、性别等列名需要加1、2、3、4,以区分家庭的不同成员。用桌子。ColumnNames函数获取列名。
7、 那就转换吧。
8、 let
9、 Source=Excel.CurrentWorkbook(){[Name='Table1']}[Content],
10、 A=form. Group (Source,' Relationship with Head of Household, {'New' each)
11、 [
12、 a=Table.ColumnNames(_),
13、 b=List.TransformMany({1.Table.RowCount(_)},each a,(x,y)=yText.From(x)
14、 )
15、 ][b]
16、 }
17、 0, (x, y)=number. From(y=' head of household)
18、 )
19、 in
20、 A
21、 第四步,标题生成后,你需要把各个家庭的多行人员信息(每个人的信息都是一个列表)连接起来,形成一个列表,这里我们用的是函数List。结合!
22、 List.Combine(Table.ToRows(_))
23、 第五步,连接生成的标题和内容,生成新的单行表格。
24、 let
25、 Source=Excel.CurrentWorkbook(){[Name='Table1']
26、 }[Content],
27、 A=form. Group (Source,' Relationship with Head of Household, {'New' (z)=1
28、 #table(
29、 List.TransformMany(
30、 {1.Table.RowCount(z)},each Table.ColumnNames(z),(x,y)=yText.From(x)
31、 ),
32、 {
33、 List.Combine(Table.ToRows(z))
34、 }
35、 )
36、 }
37、 0, (x, y)=number. From(y=' head of household)
38、 )
39、 in
40、 A
41、 最后,加深新列,然后合并各个家族的表,并上传到Excel工作表中。
42、 最终代码如下:
43、 let
44、 Source=Excel.CurrentWorkbook(){[Name='Table1']}[Content],
45、 A=form. Group (Source,' Relationship with Head of Household, {'New' (z)=1
46、 #table(
47、 List.TransformMany(
48、 {1.Table.RowCount(z)},each Table.ColumnNames(z),(x,y)=yText.From(x)
49、 ),
50、 {
51、 List.Combine(Table.ToRows(z))
52、 }
53、 )
54、 }
55、 0, (x, y)=number. From(y=' head of household)
56、 )
57、 in
58、 Table.Combine(A[New])
59、 个人推荐
60、 最终效果如图。
以上就是power query这篇文章的一些介绍,希望对大家有所帮助。