如何在excel中复制用@编写的文本

如何在excel中复制用@编写的文本,excel,web,excel-formula,copy,paste,Excel,Web,Excel Formula,Copy,Paste,我有一个公式- =CONCATENATE(IFERROR(TRIM(LEFT(SUBSTITUTE(MID(B4,FIND("~~",SUBSTITUTE(B4,"@","~~",1)),LEN(B4))," ",REPT(" ",100),1),100)),""),",",IFERROR(TRIM(LEFT(SUBSTITUTE(MID(B4,FIND

我有一个公式-

  =CONCATENATE(IFERROR(TRIM(LEFT(SUBSTITUTE(MID(B4,FIND("~~",SUBSTITUTE(B4,"@","~~",1)),LEN(B4))," ",REPT(" ",100),1),100)),""),",",IFERROR(TRIM(LEFT(SUBSTITUTE(MID(B4,FIND("~~",SUBSTITUTE(B4,"@","~~",2)),LEN(B4))," ",REPT(" ",100),1),100)),""),",",IFERROR(TRIM(LEFT(SUBSTITUTE(MID(B4,FIND("~~",SUBSTITUTE(B4,"@","~~",3)),LEN(B4))," ",REPT(" ",100),1),100)),""))

但问题是,它只给出一行@中最多3个单词的结果。例如,如果我有一条直线,太阳是美丽的,是太阳系中唯一的恒星。这将给出结果-@sun@beautiful@。但是我需要一个公式,这样我就可以从那一行或那一段中提取所有带“@”的单词。请告诉我这在excel中是否可行,或者在其他工具或任何网站上是否可行

您可以通过
FILTERXML
使用
XPATH
的函数,该函数可从excel 2013获得,但不能从excel Online或excel for Mac获得:

使用Excel O365的
B1
中的公式:

=FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[starts-with(., '@')]")
当然,如果需要通过逗号连接所有值,可以使用
TEXTJOIN

=TEXTJOIN(",",1,FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[starts-with(., '@')]"))

这也可以在微软安卓应用程序中使用吗?我希望它复制以下Twitter帐户列表。告诉我你是否知道做这项工作的其他方法。很多工具都是可用的,但都是付费的。请在这里回答-我误解了你的第二个问题,我不知道如何获取这些信息,很抱歉,这是一个与excel相关的问题
=TEXTJOIN(",",1,FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[starts-with(., '@')]"))
=TEXTJOIN(", ",1,IFERROR(MID(A1,IF(MID(A1,SEQUENCE(LEN(A1)),1)="@",SEQUENCE(LEN(A1)),""),FIND(" ",A1&" ",IF(MID(A1,SEQUENCE(LEN(A1)),1)="@",SEQUENCE(LEN(A1)),""))-IF(MID(A1,SEQUENCE(LEN(A1)),1)="@",SEQUENCE(LEN(A1)),"")),""))