MS EXCEL: поиск и извлечение текста из строки с использованием подстановочных знаков в диапазоне столбцов - PullRequest
0 голосов
/ 20 ноября 2018

Удаление или извлечение дат из строки - Использование подстановочных знаков в столбце диапазона

Используя формулу массива MS Excel, я хотел бы получить формулу, которая позволит мне искать в строке текста, расположенной в ячейке A, иизвлекать только совпадающий текст подстроки, который соответствует уникальному шаблону шаблона в диапазоне столбцов: $ D $ 2: $ D $ 10.

ИЛИ любая формула, которая поможет мне либо извлечь из строки совпадения дату или удалить дату сопоставленияиз строки с использованием диапазона столбцов.

КОЛОННА A (ТЕКСТ)

A2: Sally was employed from January 2016 - August 2018 and now works at home
A3: April 2013 through January 2014 was a good year
A4: Here are dates they worked for us 01/2011 til 09/2013

КОЛОННА C (РЕЗУЛЬТАТЫ ВЫВОДА)

C2: Sally was employed from and now works at home
C3: was good
C4: Here's when they worked 

КОЛОННА D (НАЙТИ ДИАПАЗОН)ЧТО)

D2: * 20?? through * 20??
D3:  ??/20?? til ??/20??
D4: * ???? - * ???? 
D5: * 2017 - Present
D6: * 20?? - * 20??
D7: * 20?? * 20??

enter image description here

1 Ответ

0 голосов
/ 21 ноября 2018

У меня есть частичное решение для вас, и я хотел бы также знать, возможно ли полностью ответить на ваш вопрос без использования RegEx или пользовательской функции.

Поиск частичных совпадений с подстановочными знаками, их относительное положение всписок, с которого они начинаются, действительно тривиален и освещался десятки раз только на этом веб-сайте.

Единственная проблема, которую я не могу решить самостоятельно, - это удаление сопоставленного текста с подстановочными знаками, поскольку, очевидно, он может иметь различную длину.Если подстановочные знаки заменяют только одиночные символы (?), Это довольно просто, и у вас не должно возникнуть никаких проблем, если вы будете делать это самостоятельно, основываясь на моих формулах ниже.К сожалению, я не знаю, как решить эту проблему, когда используются * символы подстановки.

Я не знаю решения, и мне очень хотелось бы узнать себя.

![enter image description here

Найдена строка:

=INDEX(list,MAX(IF(ISERROR(SEARCH(list,$A2)),-1,1)*(ROW(list)-ROW($A$7)+1)))

Найдена строка:

=MAX(IF(ISERROR(SEARCH(list,A2)),-1,1)*ROW(list))

Найдена позиция:

=AGGREGATE(14, 6, SEARCH(list,A2), 1)

...