【问题标题】:Reference previous row in Power Query参考 Power Query 中的上一行
【发布时间】:2020-05-21 10:26:27
【问题描述】:

我有以下数据集正在读入 Power Query:

Value
36628848
36659230
36709969
O-386082
O-390825
O-390827
37419002
37689374
O-390274
37919295
38012195
O-390586
O-380013
38104658
38287760

O-开头的值属于上一行的值,例如O-386082、O-390825、O-390827都属于36709969。

我想创建另一个列,其中包含每个“O-”条目的父级。所以输出应该是这样的:

Value       Parent
36628848    36628848
36659230    36659230
36709969    36709969
O-386082    36709969
O-390825    36709969
O-390827    36709969
37419002    37419002
37689374    37689374
O-390274    37689374
37919295    37919295
38012195    38012195
O-390586    38012195
O-380013    38012195
38104658    38104658
38287760    38287760

在 Excel 中执行此操作很容易,因为我可以: Parent = Value 如果 Value 不以 'O-' 开头,否则 Parent @ row-1

我尝试过使用 Table.Range,但无法在同一张桌子上运行它。 Power Query 中有没有办法做到这一点?

谢谢!

【问题讨论】:

    标签: excel powerquery


    【解决方案1】:

    在电源查询中

    点击列...变换...数据类型...文本

    添加列 ... 自定义列 ... 命名为 Parent 并带有公式

    = if Text.Start([Value],2)="O-" then null else [Value]
    

    右键单击父列..填充...向下

    文件...关闭并加载

    完整代码示例,如果数据来自 Table1

    let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Value", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Parent", each if Text.Start([Value],2)="O-" then null else [Value]),
    #"Filled Down" = Table.FillDown(#"Added Custom",{"Parent"})
    in  #"Filled Down"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多