【问题标题】:Excel Search and Replace string with vlookupExcel 使用 vlookup 搜索和替换字符串
【发布时间】:2015-07-25 16:45:09
【问题描述】:

我有一个 Excel 表,其中的列显示 “我喜欢 TSX 但我更喜欢 350” “我喜欢投影仪,但我是 S 级的粉丝”

我想用 “我喜欢讴歌,但我更喜欢宝马” “我喜欢宝马,但我是梅赛德斯的粉丝”

我有另一个包含匹配和替换值的 Excel 表。例如 多伦多证券交易所,讴歌 TL,讴歌 350宝马 比默,宝马

等等。

我知道如何使用 vlookup,但这对我来说是一种进步。有什么帮助吗?谢谢。

【问题讨论】:

  • 为什么需要使用vlookup()?您的问题暗示这是一项要求。
  • 不,它不必使用 vlookup。
  • 所有句子是否具有相同的结构(例如,以“我喜欢...”开头并包含“喜欢”或“粉丝”?匹配和替换范围究竟如何?请发布示例。

标签: excel replace match vlookup


【解决方案1】:

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

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

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

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

如果您有很多可能性,这将需要 2 个帮助列或 vba。让我知道是否是这种情况。基本上没有 vba,您需要在 1 列中搜索第一个术语,然后将第二个术语放在第二个公式中,然后用 vlookup 等效替换第一个术语,然后用 vlookup 等效替换第二个术语(使用上述替代)。

编辑

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

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

我们将放入列 B 和 C 的公式的第一阶段(假设您的“vlookup text”位于 sheet2 的第 1 行到第 100 行的 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% 格式化的;我在我的手机上,如果它导致问题,稍后会错误检查。如果您对它的工作原理有任何疑问,请告诉我。

【讨论】:

    猜你喜欢
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    相关资源
    最近更新 更多