Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据PowerBI中以前的单元格值将数据提取到列中_Powerbi_Powerquery - Fatal编程技术网

根据PowerBI中以前的单元格值将数据提取到列中

根据PowerBI中以前的单元格值将数据提取到列中,powerbi,powerquery,Powerbi,Powerquery,简短版本:在PowerBI,M语言中,我需要根据地址始终位于ID列中某个值的下一个单元格的知识,将地址从列数据提取到列地址 描述:我的数据集中有列数据和ID。我需要从包含大量随机信息的列数据中获取地址。我知道地址总是放在ID列中数字的下一个单元格中。我想提取地址,因此它们被放置在ID旁边,如列地址中所示。每个ID之间的行数不同,因此我无法使用index/rank等方法提取每个第6行左右。数据的结构基本如图所示 尝试过的方法:我知道我可以用一些基本的Excel公式类型来提取,但由于这一步只是长查询

简短版本:在PowerBI,M语言中,我需要根据地址始终位于ID列中某个值的下一个单元格的知识,将地址从列数据提取到列地址

描述:我的数据集中有列数据和ID。我需要从包含大量随机信息的列数据中获取地址。我知道地址总是放在ID列中数字的下一个单元格中。我想提取地址,因此它们被放置在ID旁边,如列地址中所示。每个ID之间的行数不同,因此我无法使用index/rank等方法提取每个第6行左右。数据的结构基本如图所示

尝试过的方法:我知道我可以用一些基本的Excel公式类型来提取,但由于这一步只是长查询的一部分,我想在PowerQuery/M中对此进行讨论。我已经尝试了几种解决方案,例如制作索引列和复制数据集,删除第一行,然后合并两个表,以及下面描述的方法:

但这两个问题看起来都非常复杂,非常简单,所以希望有人能找到更好的解决方案

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"}
)

我想到了一种方法。添加两个索引列-一个从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"}
)

添加列。索引列

添加列。。自定义列。。。使用公式

=try if #"Added Index"{[Index]+1}[ID]=null and [ID]<> null then #"Added Index"{[Index]+1}[Data] else null otherwise null

添加列。索引列

添加列。。自定义列。。。使用公式

=try if #"Added Index"{[Index]+1}[ID]=null and [ID]<> null then #"Added Index"{[Index]+1}[Data] else null otherwise null

我能得到一张赞成票吗;?我能得到一张赞成票吗;?