首页 > 解决方案 > 从 Google 表格中的多行单元格中提取逐行信息

问题描述

Google 表格的单元格中有多行信息,例如地址。
在此处输入图像描述

每个地址可以有不同的行数,但我们知道:
第一行总是名字
倒数第二行总是邮政编码和城市
最后一行总是国家

我们试图将地址分成 4 列:
姓名
街道地址(即提取姓名、邮政编码和城市、国家/地区后剩下的地址)
邮政编码和城市
Country
所以 col B (name) 读取第一行=REGEXEXTRACT(A1,”(\w.*)”)

当然,我可以通过计算下一行字符来计算每个单元格中有多少行
=LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),””))
如果公式返回6,那么有7行
我们如何获得C(街道地址),D(邮政编码和城市)和E列(国家)公式化?

我的意思是,当然,我可以得到这个单元格的国家,
=REGEXEXTRACT(A2,”(\n.*){6}”) 但我不能把公式复制过来……上面的 6 是手动输入的,这违背了目的。由于这是正则表达式,它显然不能采用单元格引用而不是 6,例如

=REGEXEXTRACT(Amazon!B4,”(\n.*){F1}”)
(例如,如果我在 F 列中存储了 A 列中下一行字符的数量)

标签: regexgoogle-sheets

解决方案


尝试:

=ARRAYFORMULA(IFNA({REGEXEXTRACT(A2:A, "(.*)\n"), 
 REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(A2:A, "\n(.*)$", ), "\n(.*)$", ), "^(.*)\n", ), 
 REGEXEXTRACT(REGEXREPLACE(A2:A, "\n(.*)$", ), "(.*)$"), 
 REGEXEXTRACT(A2:A, "(.*)$")}))

在此处输入图像描述


推荐阅读