【问题标题】:Lookup value - #N/A result查找值 - #N/A 结果
【发布时间】:2014-03-14 20:52:07
【问题描述】:

我正在使用=IF(VLOOKUP(A2;$B$2:$B$11;B2;FALSE); TRUE; FALSE) 在 A 列中查找一个值。

如您所见,我的公式似乎无效。有什么建议为什么会这样?

感谢您的回答!

更新

我目前只使用=ISNUMBER(VLOOKUP(A2;$B$2:$B$11;1;FALSE))FALSE 值。但是如果有匹配,我想看看True

更新

使用=Not(ISNA(VLOOKUP(A2;$B$2:$B$11;1;FALSE)))=ISNUMBER(MATCH(A2, $B$2:$B$11, 0)) 给我同样的结果:

【问题讨论】:

  • 使用VLOOKUP(A2;$B$2:$B$11;1;FALSE) - 注意,第三个参数等于1 - 数组$B$2:$B$11 中的列号来自你得到的结果
  • why are you using 1 for the col_index_num 因为$B$2:$B$11 只有一列
  • 这是因为 VLOOKUP 返回 sth 或 #N/A(当什么都没找到时)而 If(#N/A;True;Flase) 返回 #Value,因为 If 在第一个参数中预期布尔表达式
  • @simoco 非常感谢!但是我收到不同的结果!也请看我的更新!
  • 我的错:) 使用 =Not(ISNA(VLOOKUP(A2;$B$2:$B$11;1;FALSE))) 或公式,建议 Jerry:)

标签: excel excel-formula spreadsheet


【解决方案1】:

VLOOKUP 接受以下参数:

=VLOOKUP(lookup_value; table_array; col_index_num; [range_lookup])

lookup_value 将在table_array 的第一列中查找。

table_arraylookup_value和要返回的值所在的表。

col_index_num 是表示table_array 中的第n 列的数字,从该列返回值。

[range_lookup](默认为true)表示查找的类型,true 表示近似,false 表示精确。

因此,如果要查找 A2 是否在表 $B$2:$B$11 中,则需要使用 1 的 col_index_num

不过,更简单的公式是MATCH

=ISNUMBER(MATCH(A2; $B$2:$B$11; 0))

MATCH 返回找到值A2 的相对行号。如果匹配,您会得到一个数字,因此ISNUMBER 返回TRUE


如果您想检查 B 列中的值是否存在于 A 列中,则可以在您使用的公式中将其反转。把它转过来:

=ISNUMBER(MATCH(B2; $A$2:$A$11; 0))

【讨论】:

  • 感谢您的回答!请看看我的更新,因为我没有得到嘲笑的结果......
  • @user2051347 你确定你使用了我建议的公式吗? :)
  • 是的,我正在使用exactly =ISNUMBER(MATCH(A2, $B$2:$B$11, 0)) 但是我在第一列收到FALSE,然后是TRUE's
  • @user2051347 我刚刚检查了您的“预期结果”列,那里的 B 列中有一个 b 和一个 d
  • @user2051347 或:您是否正在检查 B 列中的值是否存在于 A 列中?那是另一回事。
【解决方案2】:

您也可以使用COUNTIF,即复制C2中的这个公式

=COUNTIF(A$2:A$11,B2)>0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多