首页 > 解决方案 > 使用公式从同一单元格中提取多个字符串

问题描述

我有一个excel单元格的内容:例如

Bananas_05/05/2019
Oranges_07/06/2019
Oranges_08/05/2019
Apples_10/12/2018
Oranges_08/03/2019

我想要,仅使用公式(无 VBA)来提取“Oranges_”旁边的所有日期所以我希望输出为:

07/06/2019
08/05/2019
08/03/2019

我目前的公式只能提取其中一个,而不是全部

我不知道我可以尝试什么

这就是我所拥有的: DATEVALUE(MID(D20,FIND("Oranges_",D20)+LEN("Oranges_")+1,10))

标签: excelformula

解决方案


这只有在使用 OFFICE 365 Excel 引入的 TEXTJOIN() 时才有可能。

如果有 TEXTJOIN() 那么这个数组形式将迭代每一行并测试然后连接日期。

=TEXTJOIN(CHAR(10),TRUE,IF(ISNUMBER(SEARCH("Oranges_",TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",999)),ROW($XFD$1:INDEX($XFD:$XFD,LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1))*999+1,999)))),SUBSTITUTE(TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",999)),ROW($XFD$1:INDEX($XFD:$XFD,LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1))*999+1,999)),"Oranges_",""),""))

作为一个数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 来确认。

在此处输入图像描述


推荐阅读