识别并替换 Excel 中电子邮件值的法语字符

识别并替换 Excel 中电子邮件值的法语字符

如何识别值中的字符 é 并将其替换为 e?

我使用 Excel 保存 MailMerge 的数据。每列代表一条数据,这些数据要么用于 MailMerge,要么上传到 CRM。

法语名字中经常有 é 这样的字符,例如:Bélanger。称呼某人为“Bélanger 女士”是正确的,但称呼某人为“jenny.bé[电子邮件保护]“ 不允许。

为了回答这个问题,假设 A、B、C 列分别代表“名字”、“姓氏”和“电子邮件”。

A 和 B 是手动输入的。C 列包含使用连接生成并遵循公司电子邮件命名约定的电子邮件。例如,如果电子邮件命名约定为“[电子邮件保护]“公式为 =concatenate(lower(a1),"."lower(b1),"@url.com")

是否可以在名称列中正确输入法语名称作为值,但自动将电子邮件值的 é 替换为 e?

答案1

最好的选择可能是将输出包装在一系列SUBSTITUTE函数中,例如

=SUBSTITUTE(
    SUBSTITUTE(
        CONCATENATE( LOWER(A1), ".", LOWER(B1), "@url.com" ),
    "á", "a"),
"é", "e")

所有您可能需要替换的字母。

答案2

打开 VBA 宏编辑器并在模块中插入此代码:

Public Function DeFrenchify(s As String) As String

    s = VBA.Replace(s, "é", "e")
    s = VBA.Replace(s, "ç", "c")
    s = VBA.Replace(s, "è", "e")
    '...add more replacements here for all characters...

    DeFrenchify= s
End Function

然后在您的工作表上,如果您的原始名称位于单元格 A1 上,例如,只需使用

=DeFrenchify(A1)

在公式中得到你想要的。

您需要启用宏才能使其工作;请注意,这在性能方面不是很好,但除非您有数千个名称并且它们变化很大,否则您不必担心。但如果您的电子表格在此之后开始变慢,请获取更好的解决方案 :-)

相关内容