繁体   English   中英

Expression.Error:我们无法将值(函数)转换为逻辑类型

[英]Expression.Error: We cannot convert the value (Function) to type Logical

我正在尝试将用户的手动输入字段用作数据连接(称为 IKX)的过滤器。

以下是用户输入数据的示例:

买家代码过滤器
104
800

我有一个表格,它应用了 power query 过滤器的代码格式:

买家代码过滤器格式 公式
[BUYER_CODE] = 104 IFERROR(IF(LEN(InputBuyerCodes[@[买家代码过滤器]])>0, "[BUYER_CODE] = " &InputBuyerCodes[@[买家代码过滤器]], ""),"")
或 [BUYER_CODE] = 800 IFERROR(IF(LEN(InputBuyerCodes[@[Buyer Code Filter]])>0, " or [BUYER_CODE] = " &InputBuyerCodes[@[Buyer Code Filter]], ""),"")

然后是一个连接这些字段的表:

CONCAT 买家代码过滤器格式 公式
[BUYER_CODE] = 104 或 [BUYER_CODE] = 800 CONCAT(表2[买家代码过滤格式])

在电源查询中,我连接到“CONCAT BUYER CODE FILTER FORMAT”表,该表向下钻取到 [BUYER_CODE] = 104 或 [BUYER_CODE] = 800,称为 ConcatBuyerCodeFilterFormat

为了将过滤器应用于 IKX 数据,我添加了以下步骤:
=Table.SelectRows(来源,每个(ConcatBuyerCodeFilterFormat))

并得到错误
Expression.Error:我们无法将值“[BUYER_CODE] = 104 o...”转换为逻辑类型。 详细信息:Value=[BUYER_CODE] = 104 或 [BUYER_CODE] = 800 Type=[Type]

关于如何解决的任何想法?

看看这是否对您有帮助。 它显示了如何使用另一个变量中的过滤器定义进行过滤

let Source =#table({"Column1"}, {{"a"}, {"b"}, {"c"}}),
crit="[Column1] = ""a""",
#"Filtered Rows" = Table.SelectRows(Source, Expression.Evaluate("each "&crit))
in #"Filtered Rows"

综上所述,如果您从第一个过滤表开始,为什么不将其与更大的 data.table 合并并删除不匹配的行呢?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM