Vlookup 包含其他单元格的一部分但不那么简单的单元格
Posted
技术标签:
【中文标题】Vlookup 包含其他单元格的一部分但不那么简单的单元格【英文标题】:Vlookup a Cell which Contains a Part of Other Cell but not that Straightforward 【发布时间】:2014-05-19 12:03:32 【问题描述】:大家好,各位 Excel 专家,我被这个我无法解决的 Excel 问题困住了。我尝试使用 Index、Match、Vlookup,但无济于事。
如果 C 列的值包含 A 列中的部分值,我基本上尝试让 D 列显示 B 列的值。
所以我正在处理的是这样的事情: 修复了表格显示
+------------------------------------------------------+
| Header Column A Column B Column C Column D |
+------------------------------------------------------+
| Row 1 111 AAA 1111 |
| Row 2 222 BBB 112 |
| Row 3 333 CCC 2225 |
| Row 4 444 DDD 333 |
+------------------------------------------------------+
所以我的预期结果是:
+------------------------------------------------------+
| Header Column A Column B Column C Column D |
+------------------------------------------------------+
| Row 1 111 AAA 1111 AAA |
| Row 2 222 BBB 112 N/A |
| Row 3 333 CCC 2225 BBB |
| Row 4 444 DDD 333 CCC |
+------------------------------------------------------+
抱歉,表格显示和解释不佳。谢谢各位。
【问题讨论】:
【参考方案1】:=INDEX($C$2:$C$5, MATCH(1,IF(ISERR(FIND($B$2:$B$5, $D2)),0,1),0))
,其中5
是最后一个数据行。在E2
中输入array formula (Ctrl+Shift+Enter),然后向下拖动。
顺便说一句,第 4 行给出的是CCC
,而不是N/A
。
【讨论】:
嗨,GSerg,谢谢你的公式,但它似乎对我不起作用。我将公式作为数组公式放在 E2 上,但是 excel 只给了我 #N/A 作为答案。我想知道为什么 D2 会包含在公式中。 @Soren Holten Hansen 谢谢你修好我的桌子。 @user3506172 我以为你的数据从B2
开始,而Row 1
是A2
中的实际数据。如果数据实际上从A1
开始,则将公式中的所有内容向上移动一个单元格,然后将其放入D1
。 =INDEX($B$1:$B$4, MATCH(1,IF(ISERR(FIND($A$1:$A$4, $C1)),0,1),0))
很棒的解决方案 GSreg,非常感谢您的帮助。 GSerg 祝你有美好的一天。
顺便说一句,如果您不介意为我解释公式。为什么我们在 Match 之后放置 1 以及 IF 和 ISERR 以及 Find 会做什么?我最初认为仅使用 Index 和 Match 可以解决上述问题。
FIND($B$2:$B$5, $D2)
创建一个数组,$B$2:$B$5
中的每个单元格对应一个项目,其中包含 D2
中相应文本的位置,或者如果未找到该文本则错误。 IF(ISERR(that array, 0, 1))
将该数组转换为0
s 和1
s 的数组,其中0
表示未找到,1
表示已找到。 MATCH(1, transformed array, 0)
查找该数组中第一个值为 1
(“找到”)的项目的位置。以上是关于Vlookup 包含其他单元格的一部分但不那么简单的单元格的主要内容,如果未能解决你的问题,请参考以下文章
表格使用vlookup函数时出现内容是空白的,但是函数还在也没显示错误??
Excel使用VLOOKUP函数填充后有的单元格会出现 #N/A 这个符号,是怎么回事?
将 Excel 公式分解为仅依赖不引用其他单元格的单元格的公式