[已解决] 一个关于PQ转换不规则表头的问题,详见贴内,在线等!

  [复制链接]
查看245728 | 回复179 | 2021-2-18 19:06:42 | 显示全部楼层 |阅读模式
问题说明:
1.左边红色的是原始表格表头,右边蓝色是想要实现的表头,最终保留蓝色第一行表头
2.涉及到的操作,商品编码和尺码向下填充,D5:I5区域智能填充空白,然后与对应的D6:I6区域内容实现合并,合并后内容作为新的表头。
3,示例表格只是一部分,实际仓库有几十个,商品编码也有几百条。

请问能否用PQ实现这个需求?如果可以,要怎么做呢?
在线等,谢谢大家!

10824111417431.jpg
10824111417433.rar (15.78 KB, 下载次数: 0)
回复

使用道具 举报

adam | 2021-2-18 19:12:42 | 显示全部楼层
这种透视表出来的表头已经极其规则了,转换起来也很容易。我认为第二行表头应该就没什么必要了。
  1. let

  2.   Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("lZExDsIwDEXvkrmVHKe0yQgzB0Cqehe6wNihgBjhACDmwnGISm+Bo7QsDLWlOPlyXr6+lbJU/rjzbd2/Tv2lVonyj24Szed+JUFr+X62Ua1GVSWlip3hsB32TXjQtf52ZnXCa+0ADABm1EYbNqoFlaYy44n/qGOjBvionkdz0AUzwIhyAkwoP4DBOVRrC5iG682azyIHdpCnoS1AJbaiDIYBo6PpkBX4h0psOYEJNqlmG0eWaVwIjAuZsWC8CDP/I8IZD7aC+ez8fNUX", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t, Column6 = _t, Column7 = _t, Column8 = _t]),

  3.   #"Replaced Value" = Table.ReplaceValue(Source,"",null,Replacer.ReplaceValue,Table.ColumnNames(Source)),

  4.   #"Transposed Table" = Table.Transpose(#"Replaced Value"),

  5.   #"Filled Down1" = Table.FillDown(#"Transposed Table",{"Column1"}),

  6.   #"Added Custom" = Table.AddColumn(#"Filled Down1", "Custom", each [Column1] & ([Column2]??"")),

  7.   #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Column1"}),

  8.   #"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"Custom"} & List.RemoveItems(Table.ColumnNames(#"Removed Columns"), {"Custom"})),

  9.   #"Transposed Table1" = Table.Transpose(#"Reordered Columns"),

  10.   #"Filled Down" = Table.FillDown(#"Transposed Table1",{"Column1", "Column2"})

  11. in

  12.   #"Filled Down"
复制代码
10824111417432.png
回复

使用道具 举报

xilu168 | 2021-2-18 19:17:42 | 显示全部楼层
这种透视表出来的表头已经极其规则了,转换起来也很容易。我认为第二行表头应该就没什么必要了。


兄弟,能把做好的表传上来不?谢
回复

使用道具 举报

jylt2004 | 2021-2-18 19:22:42 | 显示全部楼层
这种透视表出来的表头已经极其规则了,转换起来也很容易。我认为第二行表头应该就没什么必要了。


我大概看懂了,不过有一个问题,兄弟第一步是做了转置还是逆透视呢?总之是把商品编码这一列放在了横向排列,就是不知道PQ里最多可以容纳多少列,因为实际中,我的工作表商品编码有上千个
回复

使用道具 举报

wind | 2021-2-18 19:27:43 | 显示全部楼层
详情见附件!原表向右或向下可以随意拓展,一键刷新即可!另外还得友情提醒一下,日常工作中做表格时一定要注意数据源的规范,规范的数据源只需简单的透视表即可完成各种复杂的统计工作。
10824111417434.zip (23.04 KB, 下载次数: 0)
回复

使用道具 举报

草莓妹 | 2021-2-18 19:35:43 | 显示全部楼层
我大概看懂了,不过有一个问题,兄弟第一步是做了转置还是逆透视呢?总之是把商品编码这一列放在了横向排 ...


第一步是做的转置,因为懒得手写代码了,就利用PQ里现成的纵向填充的功能,把表转置后填充;PQ最多可以处理2^14列,即16,384列,一两千列的话没任何问题。
回复

使用道具 举报

凯门鳄 | 2021-2-18 19:36:43 | 显示全部楼层
详情见附件!原表向右或向下可以随意拓展,一键刷新即可!另外还得友情提醒一下,日常工作中做表格时一定要 ...


你好,为什么我把你文件里的代码放到我的表格里的高级编辑器里,出不来结果了,提示对方是由高版本创建的。我的是EXCEL2019
回复

使用道具 举报

peterqi | 2021-5-24 09:55:16 | 显示全部楼层
小白一个 顶一下
回复

使用道具 举报

hansonlc | 2021-6-10 20:52:02 | 显示全部楼层
秀起来~
回复

使用道具 举报

dgcwd | 2021-6-13 19:43:35 | 显示全部楼层
有空大家一起交流一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则