寻找查询以从列中提取电子邮件地址

问题描述 投票:0回答:1

使用查询,我想从 Data 表生成 Result 表。

数据
这个地址,
[email protected]
,很棒
[email protected]
是一个更好的电子邮件地址
最好的地址是
[email protected]
结果
[email protected]
[email protected]
[email protected]

我已经看到 regexextract 来获取电子邮件地址(如下行所示),但我想在查询中包含该地址或类似的代码,但不确定如何执行。

=iferror(Regexextract(C3,"[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}"),"")

当我使用上面的函数时,我确实从 Data 表中获取了第 1 行和第 2 行的电子邮件地址,但没有从第 3 行获取了电子邮件地址。

我已经开始

=query(data,"SELECT *",1)

重复Data表中的单元格,并尝试用代码替换*,但出现错误。例如,我尝试过

=query(data,"SELECT Regexextract(A,"[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}")",1)

显示错误。我更喜欢使用查询函数,这样我就不必将 Regexextract 函数复制到列中。

google-sheets-formula
1个回答
0
投票

QUERY 的设计目的不是在不向下拖动的情况下自动填充公式。为此,您应该使用 ARRAYFORMULA。假设您的正则表达式是正确的,则公式为:

=ARRAYFORMULA(IFERROR(REGEXEXTRACT(A2:A4,"[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}"),""))

enter image description here

将 A2:A4 替换为您的范围。

© www.soinside.com 2019 - 2024. All rights reserved.