Excel VLOOKUP 和 FIND 组合

Posted

技术标签:

【中文标题】Excel VLOOKUP 和 FIND 组合【英文标题】:Excel VLOOKUP and FIND combination 【发布时间】: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,我只是在研究中提到了这一点)。

【问题讨论】:

【参考方案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 * 表示替换任何文本

【讨论】:

以上是关于Excel VLOOKUP 和 FIND 组合的主要内容,如果未能解决你的问题,请参考以下文章

Excel(或WPS)使用vlookup匹配并合并表的方法与实例

强大的Excel工具,简便Vlookup函数操作:通用Excel数据匹配助手V2.0

excel两个工作表如何关联

excel表格怎么从一个表格中去查找另一个表格的所有数据?

定义返回空白的自定义 VBA 函数

excel表格怎样提取另一个表格中的对应数据?