【问题标题】:Difference between Vlookup() and Match()Vlookup() 和 Match() 的区别
【发布时间】:2020-02-25 14:46:01
【问题描述】:

我想对第 2 列执行搜索以查找第 1 列中缺少的关键字。我使用了formula =IF(MATCH(G2,$E$2:$E$117,0),1,"No"),因此对于返回 1 的行,这意味着该关键字存在于第 1 列中。当列中的关键字在第 1 列中找不到 2,我的公式将返回 #N/A。 (附图片)

但是,我想了解这是否可以通过更简单的方式完成,例如使用 vlookup 函数?如果是这样,怎么做?

我也不确定这个公式和 vlookup 之间的区别

希望有 Excel 函数经验的人可以向我解释一下。提前谢谢你。

干杯。

【问题讨论】:

    标签: excel excel-formula excel-match


    【解决方案1】:

    MATCH 返回值在范围内的相对位置,而 VLOOKUP 将返回值。

    使用 MATCH 时将其包装在 ISNUMBER 中以处理如果未找到 MATCH 将返回错误的事实:

    =IF(ISNUMBER(MATCH(G2,$E$2:$E$117,0)),1,"No")
    

    现在找不到错误时,您将在字段中看到No


    另一种方法是使用 COUNTIF:

    =IF(COUNTIF($E$2:$E$117,G2),1,"No")
    

    虽然更短,但会比 MATCH 版本慢。有限的数据集可能不会引起注意,但太多(10,000+)会导致问题。


    要使用 VLOOKUP:

    =IF(ISERROR(VLOOKUP(G2,$E$2:$E$117,1,FALSE)),"No",1)
    

    【讨论】:

    • 您好,非常感谢您的指导!请问使用vlookup是否也可以解决这个问题?
    • @Rosellx 是的,但是这种类型的匹配更快。见编辑。
    • 哦,非常感谢您的澄清。非常感谢!谢谢你:)
    【解决方案2】:

    这将是尝试Brand NEW

    的绝佳机会

    XLOOKUP(呜呜)

    XLOOKUP 与 VLOOKUP 的不同之处在于它使用单独的查找和返回数组,其中 VLOOKUP 使用单个表数组后跟列索引号。

    语法

    =XLOOKUP (lookup, lookup_array, return_array, [not_found], [match_mode], [search_mode])
    

    参数

    lookup - 查找值。

    lookup_array - 要搜索的数组或范围。

    return_array - 要返回的数组或范围。

    not_found - [可选] 未找到匹配项时返回的值。

    match_mode - [可选] 0 = 完全匹配(默认),-1 = 完全匹配或次小,1 = 完全匹配或次大,2 = 通配符匹配。

    search_mode - [可选] 1 = 从第一个搜索(默认),-1 = 从最后一个搜索,2 = 二进制搜索升序,-2 = 二进制搜索降序。

    【讨论】:

    • 是的,但是Xlookup如果找到不会返回1,它可以设置为如果没有找到返回No,但是和Vlookup一样如果找到它会返回值。所以仍然必须使用IF(Xlookup(...)={not_found_value},1,"No")
    • 别忘了还有XMATCH
    猜你喜欢
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多