[已解决] 把单元格下一行数值换到相邻的对应列

  [复制链接]
查看130227 | 回复131 | 2021-2-18 20:29:20 | 显示全部楼层 |阅读模式
原表中的数据,在名字那一列,名字下边有一个代码(但不是每个名字都有),想用POWERQUERY把这一行的代码换到到相邻列和名字对应上。

怎么实现?请看附件

10900111556169.rar (8.64 KB, 下载次数: 0)
回复

使用道具 举报

wgz3333 | 2021-2-18 20:35:21 | 显示全部楼层
= Table.ExpandRecordColumn(Table.Group(源,"LOB",{"a",each [Name=_[Name]{0},Code=_[ Name]{1}?,Program=_[Program]{0}]},0,(x,y)=>Number.From(ynull)), "a",{"Name", "Code", "Program"})
10900111556161.png
109001115561610.rar (16.55 KB, 下载次数: 0)
回复

使用道具 举报

陈和陈 | 2021-2-18 20:42:21 | 显示全部楼层
这个简单,我会 10900111556162.jpg
109001115561611.rar (23.86 KB, 下载次数: 0)
回复

使用道具 举报

天涯 | 2021-2-18 20:47:21 | 显示全部楼层
请参考
10900111556163.png
10900111556164.png
回复

使用道具 举报

wssessw | 2021-2-18 20:51:21 | 显示全部楼层
为啥列标题没有显示出来呢?
= Table.FromColumns( List.InsertRange( List.Transform( {a{0},a{2}},each List.RemoveNulls(_)),
                1,
                { List.Select( a{1},each Text.Contains(_,",")), List.Select( a{1},each not Text.Contains(_,","))})
          )


a 后边的 0,2是什么意思?

我的原表数据后边还有很多列,这个只是样本,照这个公式写了后,只出现了前四列。
回复

使用道具 举报

dghgs | 2021-2-18 20:57:22 | 显示全部楼层
PowerQuery参考解法
10900111556165.png
109001115561612.zip (17.5 KB, 下载次数: 0)
回复

使用道具 举报

风云仔 | 2021-2-18 21:03:22 | 显示全部楼层
请参考


能上传个样本吗?
回复

使用道具 举报

wsy682401 | 2021-2-18 21:08:22 | 显示全部楼层
各位老师的都对。假如我的数据源以经是在POWER QUERY里运行了几步以后数据。 在各位的函数里“源”应改怎么改? 改成#“步骤名称” ?
回复

使用道具 举报

tongxing | 2021-2-18 21:13:22 | 显示全部楼层
10900111556166.png
回复

使用道具 举报

37度3 | 2021-2-18 21:16:23 | 显示全部楼层
= Table.ExpandRecordColumn(Table.Group(源,"LOB",{"a",each [Name=_[Name]{0},Code=_[ Name]{1}?,Program ...


请问关于Table.Group第5参数的用法,你有没有详细的介绍和说明?我找来找去,也就是这么一篇资料:
https://www.thebiccountant.com/2018/01/21/table-group-exploring-the-5th-element-in-power-bi-and-power-query/

其原理也并未解释得十分深入,或者说,在所举的例子中自定义的(x,y)=>,每一个group的初始行x是固定的,y是后面的各行,按照函数定义的分组条件进行判断;在重新生成一个group后,又重复上一个过程。有没有更进一步的写法,能实现更为复杂的分组,比如将以下连续日期分为一组: 10900111556167.png
a-c \ d \ e-g 分为三组。
回复

使用道具 举报

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

本版积分规则