简短版本:在PowerBI,M语言中,我需要基于地址始终位于“ ID”列中值的以下单元格中的知识,将地址从“数据”列提取到“地址”列。
说明:我的数据集中有“数据”和“ ID”列。我需要从包含大量随机信息的“数据”列中获取地址。我知道该地址始终位于“ ID”列中数字的以下单元格中。我要提取地址,因此将它们放置在ID旁边,如“地址”列中所示。每个ID之间的行数各不相同,因此我无法通过使用索引/等级等来执行“提取第6行”之类的操作。数据的结构基本上如图所示。
尝试过的方法:我知道我可以使用一些基本的Excel公式键入来提取它,但是由于此步骤只是长查询的一部分,因此我想在PowerQuery / M中做到这一点。我尝试了几种解决方案,例如制作索引列,复制数据集和删除第一行,然后合并两个表和此处描述的方法:https : //www.thebiccountant.com/2018/07/12/fast-and在电源查询或电源bi /中轻松引用上一个或下一个行的方法。
但是对于一个简单的问题,两者似乎都非常复杂,因此希望有人能提供更好的解决方案。
Data ID Address
RandomData 1 Address_Here
Address null
RandomData null
RandomData 2 Address_Here
Address null
RandomData null
RandomData null
RandomData 3 Address_Here
Address null
RandomData null
RandomData null
RandomData null
RandomData 4 Address_Here
Address null
RandomData null
RandomData 5 Address_Here
Address null
RandomData null
RandomData null
我想到一种方法。添加两个索引列-一个索引从0开始,另一个索引从1开始,然后在这些列上联接(合并)表。
AddIndex0 = Table.AddIndexColumn(SourceTable, "Index0", 0, 1, Int64.Type),
AddIndex1 = Table.AddIndexColumn(AddIndex0, "Index1", 1, 1, Int64.Type),
Merged = Table.ExpandTableColumn(
Table.NestedJoin(AddIndex0, "Index0", AddIndex1, "Index1", "Joined", JoinKind.LeftOuter),
"Joined",
{"Data", "ID"},
{"Prev_Data", "Prev_ID"}
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句