我想根据字段中的数据在另一列中放置一个值。
如果 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
则返回错误。
ISERROR
then 用于将这些匹配结果转换为 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=Banana
B3=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。