如何从字符串中提取字符?

时间:2019-11-07 03:03:44

标签: arrays regex google-sheets google-sheets-formula array-formulas

我想从我的Google工作表发送电子邮件。我希望电子邮件以收件人的名字或收件人的名字为收件人。以下是我在A列中的数据的示例。

Sample Data

我需要在B列中使用一个公式来提取A列中的名字,但是如果以不同的名称来知道它们,那么该名称应该放在A列的方括号中,那么我希望将该名称提取到B列中。我有以下适用于方括号中的名称的公式,但是在没有方括号的情况下,我需要有关公式的帮助以提取名字。

=(SPLIT(REGEXEXTRACT(A2,"\((.*)\)"),","))

3 个答案:

答案 0 :(得分:1)

尝试一下。在B2中,输入以下公式:

=iferror(SPLIT(REGEXEXTRACT(A2,"\((.*)\)"),","), mid(A2, find(", ", A2)+2, len(A2)))

说明:

第一部分是您的:     SPLIT(REGEXEXTRACT(A2,“((。*))”),“,”)

如您所见,如果找不到“(”,则返回#ERROR。因此,请使用iferror进行包装。如果出现错误,则返回第二部分:     = mid(A2,find(“,”,A2)+2,len(A2))

mid()函数从字符串返回一个子字符串。第一个参数是您要查找的字符串,位于A2中。然后,子字符串的起始位置是“,”的位置(偏移2),并一直持续到字符串的末尾。

答案 1 :(得分:1)

单细胞解决方案:

=ARRAYFORMULA(IFNA(IFNA(
 REGEXEXTRACT(A2:A, "\((.*)\)"), 
 REGEXEXTRACT(A2:A, ", (.*)"))))

0

答案 2 :(得分:0)

尝试一下。在B1中,输入以下公式:

={"Salutation";arrayformula(if(A2:A="","",iferror((SPLIT(REGEXEXTRACT(A2:A,"\((.*)\)"),",")),index(split(A2:A," "),,2))))}

说明:

第一部分是您的:SPLIT(REGEXEXTRACT(A2,“((。*))”),“,”)

如您所见,如果找不到“(”,则返回#ERROR。因此请使用iferror进行包装。如果出现错误,则返回第二部分:index(split(A2:A, “”),, 2)

index()函数返回split()的第二列。这样做的好处是您不必向下拖动公式。