Excel Power Query - 通过从另一个 Table 查找数据来添加条件列

Excel Power Query - add conditional column by looking up data from another Table

我希望通过从另一个 table.

中查找数据来在 power 查询中添加一个条件列

举个例子,我的查找数据如下:

我的数据如下:

现在我想检查我的数据中的数字是否在我的主数据的开始和结束之间,如果满足条件,那么我想通过将相应的“数字”单元格复制到我的数据来添加一列.结果应如下所示:

谁能告诉我怎么做?

非常感谢任何帮助。 提前致谢

使用查询名称 LookupQuery 将您的顶部 table 加载到 powerquery 和文件 ... 关闭并加载。它应该有你显示的列名

然后将中间源 table 加载到 powerquery 并添加列...自定义列...使用公式

= Table.SelectRows(LookupQuery,(x) => [Data] >= x[Begin] and [Data] <=x[End] )[Digits]{0}

完整代码:

let Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Data", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Table.SelectRows(LookupQuery,(x) => [Data] >= x[Begin] and [Data] <=x[End] )[Digits]{0})
in #"Added Custom"

另一种方法是根据数字的长度进行匹配。这对于大型数据集会更好 将您的中间源数据加载到 powerquery and

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

=  Text.Length(Text.From([Data]))

将您的数据与查找查询合并,并将公式栏中的公式替换为:

= Table.NestedJoin(#"Added Custom", {"Custom"}, Table.AddColumn(LookupQuery, "Custom", each Text.Length(Text.From([Begin]))), {"Custom"}, "LookupQuery", JoinKind.LeftOuter)

展开数字列

第二种方法的完整代码:

let Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Data", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Text.Length(Text.From([Data]))),
#"Merged Queries" = Table.NestedJoin(#"Added Custom", {"Custom"}, Table.AddColumn(LookupQuery, "Custom", each Text.Length(Text.From([Begin]))), {"Custom"}, "LookupQuery", JoinKind.LeftOuter),
#"Expanded LookupQuery" = Table.ExpandTableColumn(#"Merged Queries", "LookupQuery", {"Digits"}, {"Digits"})
in #"Expanded LookupQuery"