Извлечение нескольких строк из одной ячейки с помощью формул - PullRequest
0 голосов
/ 25 июня 2019

У меня есть содержимое одной ячейки 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

Моя текущая формула может извлечь только 1 из них, а не все

Я понятия не имею, что я могу попробовать

Вот что у меня есть: DATEVALUE (MID (D20, FIND ( "Апельсины _", D20) + LEN ( "Апельсины _") + 1,10))

1 Ответ

0 голосов
/ 25 июня 2019

Это возможно, только если у вас есть TEXTJOIN (), который был введен в OFFICE 365 Excel.

Если у вас есть 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 при выходе из режима редактирования.

enter image description here

...