Power Query:从另一个表中获取符合多个条件的数据

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

尝试在其他帖子中找到解决方案,但没有成功。

在Power查询中,我有两个要与条件匹配的表。 以下是表格:

(我在编辑表格时遇到问题,所以附上表格的屏幕截图)

表1

订购 序列
7000455 4 40
3010445 0 550
3010445 0 120

表2

订购 序列 会议
7000455 4 50 20631586
3010445 0 510 21576057
3010445 0 540 21576060
3010445 0 570 21576059

现在,我想从 TABLE2 中获取 TABLE1 中每一行的 [Conf] 值,条件如下:

  1. 表1[顺序] = 表2[顺序]
  2. 表1[序列] = 表2[序列]
  3. 表1[操作] > 表2[操作]
  4. 如果找到多个记录,我需要与表 1 中的记录最接近的(最大)[Op]

*null *如果条件不满足:

表3(结果)

订购 序列 会议
7000455 4 40
3010445 0 550 21576060
3010445 0 120

希望问题解释清楚。

现在,我尝试了下面的M代码,但这是(....)我陷入困境的地方:

    = let
        Source = TABLE1,
        TABLE2 = Table.SelectColumns(TableX, {"Order", "Seq", "Op", "Conf"}),
        TABLE3 = Table.AddColumn(Source, "Conf2", (i) => (Table.SelectRows(TABLE2, each (.....)) [Conf]{}, type number)
    in
        TABLE3
join conditional-statements powerquery
1个回答
0
投票

你可以这样做

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Custom" = Table.AddColumn(Source, "Conf",  (x)=>
    try Table.Sort(Table.SelectRows(Table2, each x[Order]=[Order] and x[Seq]=[Seq] and x[Op]>[Op]),{{"Op", Order.Descending}}){0}[Conf]
    otherwise null)
in #"Added Custom"

enter image description here

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