Excel Power Query - 通过比较两列来过滤行

Ric*_*ard 2 excel m powerquery

我在 Excel 中有一个表,它在 Power Query 编辑器中自外部连接以创建对

Table named Items
-----------------
Item   Value
A      1
B      2
C      3
Run Code Online (Sandbox Code Playgroud)

我创建了一个来自表/范围查询,该查询已关闭并加载到名为“Items”的连接

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Item", type text}, {"Value", Int64.Type}})
in
    #"Changed Type"
Run Code Online (Sandbox Code Playgroud)

然后进行另一个查询,即自反交叉连接

let
    Source = Items,
    #"Added Custom" = Table.AddColumn(Source, "Custom", each Items),
    #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"Item", "Value"}, {"Custom.Item", "Custom.Value"}),
    #"Renamed Columns" = Table.RenameColumns(#"Expanded Custom",{{"Custom.Item", "Item.2"}, {"Custom.Value", "Value.2"}, {"Value", "Value.1"}, {"Item", "Item.1"}}),
    #"Added Custom1" = Table.AddColumn(#"Renamed Columns", "Value", each [Value.1]*[Value.2])
in
    #"Added Custom1"
Run Code Online (Sandbox Code Playgroud)

此时查询显示 9 行 (3x3)

Item.1 Value.1 Item.2 Value.2 Value
A      1       A      1       1
A      1       B      2       2
A      1       C      3       3
B      2       A      1       2
B      2       B      2       4
B      2       C      3       6
C      3       A      1       3
C      3       B      2       6
C      3       C      3       9
Run Code Online (Sandbox Code Playgroud)

我正在努力编辑查询,以便它将结果过滤到以下情况value.1 <= value.2

Item.1 Value.1 Item.2 Value.2 Value
A      1       A      1       1
A      1       B      2       2
A      1       C      3       3
B      2       B      2       4
B      2       C      3       6
C      3       C      3       9
Run Code Online (Sandbox Code Playgroud)

Power Query 编辑器 UI 似乎没有提供x < y筛选功能,我不确定如何使用Power Query M 公式语言按照我想要的方式筛选数据。

Microsoft Power Query 提供了包含许多功能的强大数据导入体验。Power Query 可与 Analysis Services、Excel 和 Power BI 工作簿配合使用。Power Query 的一项核心功能是过滤和组合,即混搭来自一个或多个受支持数据源的丰富集合的数据。任何此类数据混搭均使用 Power Query M 公式语言来表达。它是一种类似于 F# 的函数式、区分大小写的语言。

Ser*_*sev 5

让我们有一张桌子

在此输入图像描述

只需单击过滤按钮并选择某种比较

在此输入图像描述

插入一些值,例如 1

在此输入图像描述

然后将该值更改为要比较的列名称

在此输入图像描述

在此输入图像描述

let
    Source = #table({"col1", "col2"}, {{99,88}, {11,22}, {33,44}}),
    filter = Table.SelectRows(Source, each [col1] <= [col2])
in
    filter
Run Code Online (Sandbox Code Playgroud)