繁体   English   中英

查找内容和替换:MS Excel使用两列查找和替换单元格中的多个字符

[英]Find What & Replace With: MS Excel Find and Replace Multiple Characters within a Cell Using Two Columns

我试过使用INDEX和MATCH,以及。 SUBSTITUTE公式,两者都很棒,但不幸的是,两者都不能让我达到预期的结果,每个都有局限性。 使用MS Excel,在单元格A2中,我有一个文本,其中包含我要在字符串中替换的多个字符和字母(示例A2:{先生和太太} John Peterson_Jones {444} 585/0000)。 我还有两(2)个附加列,每个列都有标题(单元格B1:“查找内容”和单元格C1:“替换为”)。 在B2栏:B101(查找内容)中,我有一个单独的关键词,字母和字符的列表,如果在单元格A2中找到任何特定的关键字,字母或字符; 将替换为替换为C2:C101中的相邻查找内容 - REPLACE WITH关键字,字母或字符。

旧文:{先生 约翰彼得森_琼斯@ {444} 585/0000新案文:John Peterson-Jones先生和夫人

查找{,},@,0,1,2,3,4,5,6,7,8,9替换为空值查找“和”=替换为“&”查找“_”=替换为 - (连字符)找到“/”=替换为 - (连字符)

如果你可以使用宏,那么你可以做这样的事情:

For i = 2 To 101

    findThese = Split(Range("B" & i), ",")
    replaceWith = Range("C" & i).Value
    replaceWith = Trim(replaceWith)

    If Not IsEmpty(findThese) Then
        For Each found In findThese
            found = Trim(found)
            Range("A2").Replace What:=found, Replacement:=replaceWith, LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
        Next
    Else
        findThis = Range("B" & i).Value
        Range("A2").Replace What:=findThis, Replacement:=replaceWith, LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
    End If
Next i

我以为你的意思是: 电子表格http://www.piombo.com/ebay/spreadsheet.jpg

您想要做的可能是使用“查找和替换”功能(ctrl + f)而不是使用公式更快。 excel中公式的问题是它们是特定于细胞的,而不是特定于字符的。 为了用你想要的公式做你想要的东西,你需要花费很长时间来编写过多的嵌套if语句。

您可以执行的另一个选项是文本到列,但此列之后的列应该是空的,否则它将覆盖值。

选择列 - >数据选项卡 - >文本到列 - >分隔 - >在框中选中带有'@'的另一个框。 这不会修复名称,但会将所有电话号码移动到另一列进行批量删除。 删除数字和@符号后,您只需更换括号和下划线即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM