如何识别值中的字符 é 并将其替换为 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)
在公式中得到你想要的。
您需要启用宏才能使其工作;请注意,这在性能方面不是很好,但除非您有数千个名称并且它们变化很大,否则您不必担心。但如果您的电子表格在此之后开始变慢,请获取更好的解决方案 :-)