【问题标题】:Excel: Concatenate space separated Firstinitial Middleinitial LastName @email.address.comExcel:连接空格分隔 Firstinitial Middleinitial LastName @email.address.com
【发布时间】:2015-07-16 14:04:18
【问题描述】:

我试图弄清楚如何将用户的名字首字母、中间名字和姓氏与“@emailaddress.com”连接起来。用户的全名将位于一个单元格中,仅以空格分隔。我需要将名字的首字母和中间首字母与姓氏一起提取,将它们连接起来并添加电子邮件地址扩展名,所有这些都在另一个单元格中。

例子:

单元 1:约翰·P·史密斯

单元 2(必须是):jpsmith@emailaddress.com

谢谢大家!

【问题讨论】:

    标签: excel excel-formula concatenation


    【解决方案1】:

    尝试以下UDF

    Public Function MailMe(s As String) As String
        ary = Split(s, " ")
        MailMe = LCase(Left(ary(0), 1) & Left(ary(1), 1) & ary(2) & "@mailaddress.com")
    End Function
    

    但是,要使这个“可点击”在工作表单元格中使用:

    =HYPERLINK("mailto:" & mailme(A1),mailme(A1))
    

    【讨论】:

    • 绝对是解决这个问题的干净方法。如果中间名不是单个字符,也可以更轻松地处理中间名。
    • @ByronWall 感谢您的评论。
    【解决方案2】:

    假设中间的首字母总是一个字母,使用这个

    =CONCATENATE(LEFT(A1,1),MID(A1,FIND(" ",A1)+1,1),MID(A1, FIND(" ", A1, FIND(" ", A1)+1)+1,256),"@emailaddress.com")
    

    它的工作原理是从左边获取第一个字母,第一个空格之后的第一个字母,以及第二个空格之后的任何内容,然后添加@emailaddress.com。将 A1 更改为您的姓名所在的任何单元格,将 @emailaddress.com 更改为电子邮件地址。

    【讨论】:

    • 此外,如有必要,将整个内容放入 LOWER() 以使其小写。目前它保持 J/P/S 大写。
    【解决方案3】:

    另一种假设中间名只有一个字母的方法。

    =SUBSTITUTE(
        LEFT(A1,1) & RIGHT(A1,LEN(A1)-FIND(" ",A1))
      ," ","")&"@emailaddress.com"
    

    工作原理

    • 使用LEFT 获取第一个字母
    • 找到名字的结尾并从那里抓取文本的RIGHT
    • 使用SUBSTITUTE 将空格替换为空
    • @emailaddress 部分的大头钉

    范围和结果图片

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多