在Excel中识别和替换法语字符以获取电子邮件值


0

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

我使用Excel来保存MailMerge的数据。每列代表一条数据,可以在MailMerge中使用或上传到CRM。

在法语名称的情况下,通常会有姓氏中的é字符,例如:Bélanger。通过“Bélanger女士”向某人发表讲话是正确的,但不允许“jenny.bélanger@url.com”。

为了这个问题,假设A,B,C列分别是First,Last,Email。

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

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

Answers:


0

你最好的选择可能是将你的输出包装成一系列 SUBSTITUTE 例如,功能

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

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


0

打开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)

在公式中得到你想要的。

您需要启用宏才能使其正常工作;并且被告知这在性能方面不是很好,但你不应该担心,除非你有成千上万的名字并且他们改变了很多。但是,如果您的电子表格在此之后开始变得缓慢,请获得更好的解决方案:-)


谢谢你提供这个。我通过使用其他响应轻松地解决了这个问题,但是当我需要DeFrenchify超过100个名字时,我很期待尝试这个
Jon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.