【问题标题】:Excel VLOOKUP and FIND combinationExcel VLOOKUP 和 FIND 组合
【发布时间】:2013-12-19 15:02:19
【问题描述】:

我有两列,A 和 B,包含值。我想在 C 列中插入值,其中每个值都包含在 A 和 B 中。

我想要的结果示例:

A         B         C

Hello     No        No
Nothere   here      here
YesNo     ha

因为“这里”包含在“无”中,所以必须加上。与“YesNo”中的“No”相同

据我所知,我可以使用 FIND 来查找字符串是否存在,并使用 VLOOKUP 来搜索整个列。但是如何在整个列中使用 FIND 呢?因为使用 VLOOKUP 我必须搜索一个特定的值,它会随着列的变化而变化。

我怎样才能做到这一点? (我不需要使用 FIND 或 VLOOKUP,我只是在研究中提到了这一点)。

【问题讨论】:

    标签: excel


    【解决方案1】:

    好吧,您当然可以使用FIND,或者至少可以使用其不区分大小写的等效项:SEARCH(如果您仍需要区分大小写的搜索,请使用FIND 而不是SEARCH)。

    =IF(SUMPRODUCT(--ISNUMBER(SEARCH(B1,$A$1:$A$3))),B1,"")
    

    SEARCH首先返回一个数组:#VALUE!14

    ISNUMBER 然后返回另一个数组:FALSE, TRUE, TRUE

    --ISNUMBER 表示将它们转换为 1 和 0,1 为 TRUE,否则为 011

    SUMPRODUCT 将对该数组中的数字求和,在本例中为 2,这对于 excel 被认为是 TRUE,因此您得到 B1 作为最终结果。


    你也可以使用MATCH:

    =IF(ISERROR(MATCH("*"&B1&"*", $A$1:$A$3, 0)), "", B1)
    

    这可能更简单,或者如果你想坚持使用VLOOKUP

    =IF(ISERROR(VLOOKUP("*"&B1&"*", $A$1:$A$3, 1, 0)), "", B1)
    

    【讨论】:

    • 完美运行。谢谢。只是想知道,我可以把它变成一个宏吗?或者有没有办法让价值观动态化以便将来使用它?
    • @JeanCarlosSuárezMarranzini 我对宏了解不多,我不知道它可能以比使用函数更有效的方式编写。至于第二个问题,你能详细说明一下你的意思吗?
    • 当然。我会经常使用这个公式,因为我每天都会多次执行这种过程。我想找到一种更有效地使用此公式的方法,而不必经常更改单元格的值,因为它有时会出现问题。
    • @JeanCarlosSuárezMarranzini 哦,但您不必更改任何值,只需向下拖动公式即可,除了要查找的范围。您可以将范围变为A:A,这应该会使第一个公式的工作速度变慢,但其他两个公式的工作量较小。
    【解决方案2】:

    一个简短的方法....但需要“数组条目”

    =IF(COUNT(FIND(B1,A$1:A$3)),B1,"")

    CTRL+SHIFT+ENTER

    确认

    正如 Jerry 所说,FIND 区分大小写 - 如果您不希望区分大小写,可以替换为 SEARCH

    【讨论】:

    • 一旦在单元格中有公式,选择单元格,然后按F2 键选择公式,然后按住CTRLSHIFT 键并按ENTER。如果做得正确,你会在公式周围得到像 { 和 } 这样的花括号
    【解决方案3】:

    使用VLOOKUPFIND 这些文本

    "*No*" => "*"&B2"*"
    
    "*here*" => "*"&C2"*"
    
    "*ha*" => "*"&D2"*"
    

    star * 表示替换任何文本

    【讨论】:

      猜你喜欢
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2014-03-05
      • 1970-01-01
      相关资源
      最近更新 更多