如何在Power Query中根据不同列中的一组值执行计算?

问题描述 投票:0回答:1

我有一个示例表如下:

enter image description here

我想在 Power Query 中添加一个计算列,如下所示:

  • 对于每对 ID1 和 ID2,计算出的列应在相应行中插入下一阶段订单的日期。
  • 如果任何一对 ID1 和 ID2 只有 1 个阶段,则计算的 Column 为空白

我设法在 DAX 中做到了这一点,但在 M - Power Query 中找不到任何解决方案。 非常感谢任何帮助。 谢谢!

预期结果如下: enter image description here

powerquery m
1个回答
0
投票

You can try this in powequery, pasted to home..advanced editor..

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Grouped Rows" = Table.Group(Source, {"ID1", "ID2"}, {{"data", each 
    let a= Table.AddIndexColumn(_, "Index", 0, 1, Int64.Type)
    in Table.AddColumn(a, "OffsetDate", each try a{[Index]+1}[Date] otherwise null)
, type table}}),
#"Expanded data" = Table.ExpandTableColumn(#"Grouped Rows", "data", {"Stage Order", "Date", "OffsetDate"}, {"Stage Order", "Date", "OffsetDate"}),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded data",{{"Date", type date}, {"OffsetDate", type date}})
in  #"Changed Type"    

分组,所以ID1和ID2放在一起,加一个索引,从下面一行的索引中取出Date,然后展开取回所有的列。这假设数据按你想要的方式排序,否则先做

© www.soinside.com 2019 - 2024. All rights reserved.