Powerbi 检查A列中是否存在B列中的值

Powerbi 检查A列中是否存在B列中的值,powerbi,powerquery,Powerbi,Powerquery,使用Power BI中的Power Query,我需要检查MyTable的每一行B列中的值是否存在于A列中 如果是,则应在新列上返回该值,然后在该列上返回empy字段 这是我试图以某种方式输入if语句的代码: Table.Contains(MyTable,[B],[A]) 这是一个循环引用错误。一个简单的方法就是将表自身合并 主页..合并查询。。。并将表1合并到表1(当前),然后单击顶部的B列和底部的A列。使用新列顶部的箭头展开结果,然后仅选择[x]列A 示例代码 let Source = E

使用Power BI中的Power Query,我需要检查
MyTable
的每一行
B列中的值是否存在于
A列中

如果是,则应在新列上返回该值,然后在该列上返回empy字段

这是我试图以某种方式输入if语句的代码:

Table.Contains(MyTable,[B],[A])

这是一个循环引用错误。

一个简单的方法就是将表自身合并

主页..合并查询。。。并将表1合并到表1(当前),然后单击顶部的B列和底部的A列。使用新列顶部的箭头展开结果,然后仅选择[x]列A

示例代码

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Merged Queries" = Table.NestedJoin(Source,{"Column2"},Source,{"Column1"},"Source",JoinKind.LeftOuter),
#"Expanded Source" = Table.ExpandTableColumn(#"Merged Queries", "Source", {"Column1"}, {"Column1.1"})
in #"Expanded Source"

我不知道你想从哪里得到这些结果,所以我只是把它作为一列添加到理论样本表中

鉴于此表:

该代码:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Added Custom" = Table.AddColumn(Source, "C", each if List.Contains(Source[A], [B]) then [B] else null)
in
    #"Added Custom"
给出以下结果:


感谢您的帮助,我收到错误“无法将值…转换为类型列表,列A和B为文本类型。此解决方案工作正常。如果您编写
[A]
而不是
源[A],则会出现此错误
。后者是一个列表,而前者是一个单元格值。这个精确的代码只适用于我在这里展示的示例。我不知道您的数据是什么样的,所以我不能说您需要在那里更改什么,但“Source[a]”应该是对表中某列的引用(您正在检查B中的值是否存在).PQ中的所有连接使用“嵌套连接”“功能。这无疑是一个非常高效和快速的检查,但也可能会导致问题,具体取决于列a和B中的数据。如果列a中存在任何重复值,则它将通过扩展联接操作创建一个重复行。如果是这种情况,则不需要展开联接结果,而是需要添加一个自定义列,用于检查联接结果是否为空表,并将值保留在B中或返回空白。