在excel中我有两列A& B.列是原始数据,B列是查找数据。 C列是结果数据。
如果A匹配B(确切)得到B的值,如果不完全匹配则删除最后一个字符并尝试直到匹配。如果在逐个字符删除后没有匹配(重复整个单词),则需要输入NA(不可用)。
是否有可能在excel中实现这一目标?我试过VLOOKUP,但我没有得到如何循环。
示例:
A B c(Result)
Samsung Samsung Samsung
Samsungflexwash honeywell Samsung
Samsungsbf 3M Samsung
honeywelllyric honeywell
A Column:
Samsung
Samsung
Samsungflexwash
Samsungsbf
honeywelllyric
honeywelllyric
B Column:
3M
Samsung
honeywell
谢谢,
答案 0 :(得分:0)
在C1
使用此数组公式并填写:
C1
=INDEX(B:B,MATCH(1,FIND($B$1:$B$10,A1),0))
控制 移 输入
P.S。 避免使用数组公式的完整列,因为它会变慢。在公式中使用合理数量的行。我使用B1:B10
,但你可以使用数千,但不要满满B:B
。
一些解释
当在数组公式中时,表达式FIND($B$1:$B$10, A1)
将生成一个数组,其中每个条目i
是找到单元格Bi
的内容的位置在单元格A1
中(如果未找到,则为#NA)。然后MATCH
函数在此数组中找到FIND
返回1
的位置;因为我们的目标是在B中找到一个匹配A1
开头的单元格。最后,INDEX
使用此位置并返回B列中匹配的单元格。
答案 1 :(得分:0)