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!
,1
,4
ISNUMBER
然后返回另一个数组:FALSE
, TRUE
, TRUE
--ISNUMBER
表示将它们转换为 1 和 0,1 为 TRUE,否则为 0
、1
、1
。
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
键选择公式,然后按住CTRL
和SHIFT
键并按ENTER
。如果做得正确,你会在公式周围得到像 和 这样的花括号【参考方案3】:
使用VLOOKUP
和FIND
这些文本
"*No*" => "*"&B2"*"
"*here*" => "*"&C2"*"
"*ha*" => "*"&D2"*"
star *
表示替换任何文本
【讨论】:
以上是关于Excel VLOOKUP 和 FIND 组合的主要内容,如果未能解决你的问题,请参考以下文章
Excel(或WPS)使用vlookup匹配并合并表的方法与实例