Excel:返回true或false的VLOOKUP?

5
在Excel中,我们有VLOOKUP函数,它会在表格的某一列中查找一个值,如果找到了,则返回该表格中给定列中的一个值。如果没有找到,则会产生一个错误。
是否有一个函数可以根据在列中是否找到值来返回真或假?
6个回答

9

您可以在IFERROR()函数中嵌套VLOOKUP()函数。

注:在Excel 2007之前,请使用=IF(ISERROR()...)函数。


1
那我只需要这样写 =IF(ISERROR(); "未找到"; "已找到") 或者类似的吗? - Svish
是的。=IF(ISERROR(Vlookup(...)),"未找到","已找到") 保留Vlookup函数中的所有重要部分。 - BradC
1
甚至可以使用=IF(ISERROR(Vlookup(...)),FALSE,TRUE)来给出您原始请求的True/False。 - Mark Baker
1
COUNTIF是一个更快的解决方案。 - iDevlop

7
你仍然需要在ISERROR中使用,但你可以使用MATCH()替代VLOOKUP():
返回满足指定顺序中特定值的项目在数组中的相对位置。当你需要一个范围内的项的位置而不是实际项本身时,请使用MATCH而不是LOOKUP函数之一。
以下是一个完整的示例,假设你正在查找单元格范围内的单词"key":
=IF(ISERROR(MATCH("key",A5:A16,FALSE)),"missing","found")

FALSE是必须的,以强制进行精确匹配,否则它将寻找最接近的值。


7

只需使用COUNTIF函数!比其他建议更快地编写和计算。


编辑:

假设当B1的值在C列中找到时,A1应该为1,否则应该为2。你会如何做到这一点?

我会说如果B1的值在C列中找到,则A1将为正数,否则它将为0。这可以通过公式轻松实现:=COUNTIF($C$1:$C$15,B1),意思是:计算范围C1:C15内等于B1的单元格数量。

你可以将COUNTIFVLOOKUPIF结合使用,这比使用2个查找+ ISNA要快得多。IF(COUNTIF(..)>0,LOOKUP(..),"Not found")

通过一些谷歌搜索,你可以找到大量的示例


你能给一个简单的例子吗?比如说,如果B1的值在C列中找到,那么A1应该是1,否则它应该是2。你会怎么做呢? - Svish
1
问题是:是否有一个函数,根据值是否在列中找到而返回true或false?对此,“COUNTIF”是最简单的答案。+1 - brettdj

1

我们一直使用

if(iserror(vlookup,"n/a",vlookup))

Excel 2007引入了IfError函数,它允许您在vlookup出现错误时添加输出,但这对于2003版本的用户无济于事...


除了我的答案适用于xl2003,还包含一些关于xl2007的额外信息。 - Dave Arkell

1

您可以使用:

=IF(ISERROR(VLOOKUP(lookup value,table array,column no,FALSE)),"FALSE","TRUE")

1
-1 (已有相同答案,请勿重复回答) - brettdj

-1

ISNA是最好的函数。我刚刚使用了它。我想要所有值不在数组中的单元格有条件地格式化为特定颜色。

=ISNA(VLOOKUP($A2,Sheet1!$A:$D,2,FALSE))


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接