Excel使用vlookup搜索和替换字符串

时间:2015-07-25 16:45:09

标签: excel replace match vlookup

我有一张excel表,我有专栏说 "我喜欢TSX,但我更喜欢350" "我喜欢投手,但我喜欢S级"

我想替换它 "我喜欢讴歌,但我更喜欢宝马" "我喜欢宝马,但我是梅赛德斯的粉丝"

我有另一个带有匹配和替换值的Excel工作表。例如 TSX,Acura TL,讴歌 350宝马 Beamer,宝马

等。

我知道如何使用vlookup,但这对我来说是先进的。有帮助吗?谢谢。

1 个答案:

答案 0 :(得分:0)

根本不使用vlookup,如果你没有多种类型的汽车,你可以简单地使用SUBSTITUTE。作为

=SUBSTITUTE(A1, "TSX", "ACURA")

然后将其包裹多次,每种可能性一次:

= SUBSTITUTE(替换(A1," TSX"," ACURA")," S-CLASS"," MERCEDES"))

如果您有很多可能性,则需要2个辅助列或vba。如果是这样,请告诉我。基本上没有vba你需要在1列中搜索第一个术语,然后将第二个术语放在第二个公式中,然后用vlookup替换第一个术语“等效”,然后用vlookuo替换第二个术语&#39 ; d equivilent(使用上面的替代品)。

修改

再次阅读q似乎有很多可能性,所以我们需要使用两个辅助列和areay公式来解决。 VBA可能更好,但在我的手机上,因此无法测试任何错误,你可能也不想要vba。

这些辅助列的原理是找到文本中存在的2辆车。一旦你知道哪两个存在,你可以简单地替换上面两个。

我们将在colns B和C中放入公式的第一阶段(假设您的' vlookup文本'在第1行到第100行的sheet2上的A列和B列中)是:

=If(iserror(search($A1,sheet2!$A$1:$A100)),"",row(sheet2!$A$1:$A$100))

这是一个数组公式,适用于您提供的范围内的每个单元格。要确认它,请按CTRL + SHIFT + ENTER而不是ENTER。它为您提供了一系列结果,您需要将其合并为一个答案。所以在B列中,将其包装在MIN函数中。对于C列,将其包装在Max函数中。

所以现在B列显示1个匹配术语的行号,C行显示第2个匹配术语的行号。

现在在D列中,我们知道第一个匹配的行号,第一个替换术语以及匹配和替换术语。替换所有内容如下:

=Substitute(substitute(A1,INDEX(SHEET2!$A$1:$A$100, B1),INDEX(SHEET2!$B$1:$B$100, C1)),INDEX(SHEET2!$A$1:$A$100, C1),INDEX(SHEET2!$B$1:$B$100, B1)))

确保使用CTRL SHIFT ENTER确认,而不是只输入。

道歉,如果这不是100%格式化;我在手机上,如果它导致问题,将在以后检查错误。如果您对此如何运作有疑问,请与我们联系。