如何从Google Sheets A列提取数据填充至B、C、D、E列?
Google Sheets 拆分A列数据到多列解决方案
问题根源
你之前用=REGEXEXTRACT(A2,"Mejladress: (.+)")提取邮箱失败,是因为正则里的.+属于贪婪匹配,会把Mejladress:后面的所有内容(包括 Company: Mad People)都一并提取,而非仅邮箱地址。
逐列提取公式(从第2行开始)
以下公式适配你给出的A列数据格式,直接对应填入目标列即可:
B列(提取Name)
=REGEXEXTRACT(A2,"Name: ([A-Za-z]+)")
- 逻辑:精准匹配
Name:后的字母内容,直到下一个字段(LastName)的空格处停止。
C列(提取LastName)
=REGEXEXTRACT(A2,"LastName: ([A-Za-z]+)")
- 逻辑:同Name提取规则,匹配
LastName:后的字母内容。
D列(提取邮箱地址)
=REGEXEXTRACT(A2,"Mejladress: ([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,})")
- 逻辑:用标准邮箱正则规则匹配,彻底避免贪婪匹配带来的多余内容;如果你的字段名是拼写失误(比如应为
Email),直接替换公式里的Mejladress即可。
E列(提取Company)
=REGEXEXTRACT(A2,"Company: (.+)")
- 逻辑:因Company是最后一个字段,用
.+直接匹配剩余所有内容即可。
批量填充方案(数组公式)
如果想一次性处理A列所有数据,在B2单元格输入以下数组公式,自动生成B、C、D、E列的所有内容:
=ARRAYFORMULA(IF(A2:A="",,{REGEXEXTRACT(A2:A,"Name: ([A-Za-z]+)"),REGEXEXTRACT(A2:A,"LastName: ([A-Za-z]+)"),REGEXEXTRACT(A2:A,"Mejladress: ([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,})"),REGEXEXTRACT(A2:A,"Company: (.+)")}))
特殊情况适配
如果名字/姓氏包含空格(比如Name: Mary Ann),需要将对应公式调整为非贪婪匹配到下一个字段名前,例如Name的公式改为:
=REGEXEXTRACT(A2,"Name: (.+?) LastName")
内容的提问来源于stack exchange,提问作者yeoldeyeyoung
相关产品推荐
相关产品推荐

