如何将连续姓名字符串拆分转换为独立行?
解决姓名字符串按「名+姓」分组拆分的问题
需求说明
现有一段空格分隔的姓名字符串:
Name1 Surname1 Name2 Surname2 Name3 Surname3
需要将其转换为每行对应一组「名+姓」的表格形式:
| 姓名 |
|---|
| Name1 Surname1 |
| Name2 Surname2 |
| Name3 Surname3 |
尝试过的方法及问题
使用「粘贴格式→拆分文本(空格分隔)」后执行「选择性粘贴→转置」,结果会把名和姓拆成单独的行,不符合需求:
| 姓名 |
|---|
| Name1 |
| Surname1 |
| Name2 |
| Surname2 |
| Name3 |
| Surname3 |
适配后的公式解决方案
之前找到的按编号拆分的公式无法直接套用,我们可以修改正则表达式,针对「名+姓」的结构处理。在Google Sheets中使用以下公式:
=TRANSPOSE(SPLIT(REGEXREPLACE(A1, "(\w+ \w+)(?= |$)", "$1♥"), "♥"))
公式说明:
REGEXREPLACE(A1, "(\w+ \w+)(?= |$)", "$1♥"):定位每一组「名+姓」(由字母+空格+字母组成的连续结构),在每组末尾添加特殊分隔符♥(可替换为姓名中不会出现的任意字符)SPLIT(..., "♥"):用分隔符将字符串拆分为多个独立的「名+姓」条目TRANSPOSE(...):将横向排列的条目转置为纵向的独立行
把公式中的A1替换为存放姓名字符串的单元格,即可得到预期结果。
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

