如何在 Excel 中使用 IF 语句与列表进行比较?

如何在 Excel 中使用 IF 语句与列表进行比较?

我想根据字段中的数据在另一列中放置一个值。

如果 B2 = “UBE” 或 “APPL” 或 “TBLE” 则值应为 3,否则为 1

我似乎无法指定值的“列表”。

=IF(B2=UBE,3,1)是我现在所拥有的,但它仍然无法仅对一个值起作用。

答案1

您可以将可能匹配的列表指定为 MATCH 函数中的数组参数。

=IF(ISERROR(MATCH(B2,{"UBE","APPL","TBLE"},0)),1,3)

此公式将查看 B2 是否与数组中的任何值匹配。如果它与其中一个值匹配,MATCH则返回匹配值的索引。如果不匹配,MATCH则返回错误。

ISERRORthen 用于将这些匹配结果转换为 TRUE 或 FALSE——如果MATCH返回错误,则返回 TRUE,如果没有返回,则返回 FALSE。

IF如果ISERROR为真则返回 1,如果为假则返回 3。

答案2

有很多方法可以做到这一点。

  • 一种是使用 OR 来扩展条件列表:

    =IF(OR(B2="UBE",B2="APPL",B2="TBLE"),3,1)

  • 另一种方法是在列表中查找单元格值,这样您就可以将列表保存在一个地方。假设您将列表放在 A1 中:

    答案1: UBE,APPL,TBLE

    该字符串只是数据,只能是文本,因此您无需将其括在引号中,如果您将其用作公式中的比较值(如上图所示),则需要将其括在引号中。B2 中的值是您要测试的值,因此您的公式可以是:

    =IF(ISERROR(FIND(B2,$A$1)),1,3)

    如果 B2 的值不在列表中,则会产生错误,因此这就是 IF 测试的条件。您也可以使用 SEARCH 代替 FIND,不同之处在于 FIND 区分大小写,而 SEARCH 不区分大小写。

答案3

假设您要搜索存储在 A1 中的以下字符串

A1=Lemon

您的列表存储在单元格 B1、B2 和 B3 中,如下所示

B1=Apple,, B2=BananaB3=Lemon

A1您可以使用以下命令在列表B1:B3(以数组表示)中搜索:

=IF(SUM(IF(A1=B1:B3,3,0))=0,1,SUM(IF(A1=B1:B3,3,0)))

Ctrl请注意,需要按+ Shift+将此公式作为数组公式“输入” Enter。对于在列表中找到的每个匹配项,将返回值 3。假设列表由唯一值组成,如果在列表中找到,则返回 3;如果在列表中未找到,则返回 0。如果为 0,则将其替换为 1。

相关内容