如何在Google Sheets中实现4个姓名的姓氏前置格式转换
Google Sheets 多姓名格式转换公式(支持2-4个姓名)
需求说明
需要将姓名格式调整为「姓氏, 名字及后续名字」的形式,原公式已支持2个(如John Smith→Smith, John)和3个(如John Doe Smith→Smith, John Doe)姓名的转换,现需适配4个姓名的场景(如John Michael Doe Smith→Smith, John Michael Doe)。
适配后的公式
=MID(TRIM(A2)&", "&TRIM(A2), IF(LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))=3, FIND(" ",TRIM(A2),FIND(" ",TRIM(A2),FIND(" ",TRIM(A2))+1)+1)+1, IF(LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))=1, FIND(" ",TRIM(A2))+1, FIND(" ",TRIM(A2),FIND(" ",TRIM(A2))+1)+1)), LEN(TRIM(A2))+1)
公式逻辑说明
- 清除冗余空格:
TRIM(A2)清除姓名前后的空格,避免空格数量判断出错。 - 判断姓名组成个数:通过
LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))计算姓名中的空格数:- 空格数=1 → 2个姓名,取第一个空格后的内容作为姓氏,前面的作为名字
- 空格数=2 → 3个姓名,取第二个空格后的内容作为姓氏,前面的作为名字
- 空格数=3 → 4个姓名,取第三个空格后的内容作为姓氏,前面的作为名字
- 截取并拼接格式:通过
MID函数从拼接后的字符串(原姓名+", "+原姓名)中精准截取目标内容,输出「姓氏, 名字及后续名字」的格式。
验证示例
- 输入
John Smith→ 输出Smith, John - 输入
John Doe Smith→ 输出Smith, John Doe - 输入
John Michael Doe Smith→ 输出Smith, John Michael Doe
内容的提问来源于stack exchange,提问作者Jett Vincent Sia
相关产品推荐
相关产品推荐

