Страницы: 1
RSS
Регулярный выражения. Поиск числа после определённого слова, Нужен совет по созданию РВ, которое возвращало бы значение после конкретного слова или выражения
 
Добрый день уважаемые форумчане!

Прошу помощи у более опытных коллег. Сам пробовал решить задачу и найти готовое решение, после того как не решил, но безрезультатно.
Суть задачи, есть таблица, где в одном столбце имеем артикулы позиций, в следующем названия позиций и в отдельном столбце тех. характеристики,
при этом все характеристики по каждой позиции размещены в одной ячейке, ну например, есть позиция шуруповёрт, и все тех. характеристики, вес, мощность и т.д. заключены в одной ячейке. Необходимо с помощью регулярных выражений соответствующую характеристику "выдернуть" в свой столбец. Если бы характеристики были бы в каждой ячейке записаны одинаково, можно было бы воспользоваться функцией excel "Текст по столбцам", но в данном случае это не так, поэтому прибегли к регулярным выражениям. Регулярные выражения ранее не использовал, навыка нет, почитал, кое с чем разобрался, попробовал, что-то получилось, но не всё. Было бы прекрасно сформулировать регулярное выражение, которое ищет в источнике конкретное слово или словосочетание и возвращает, следующее за ним значение. Я по началу думал, что просто, но по факту не вышло. Во вложении файл пример, там часть позиций "выдернута" с помощью регулярок, часть нет. В примере столбец  "P" - с ячейками с ТТХ, которые нужно "расчленить" по своим отдельным столбцам.
Изменено: Korvin77777 - 01.12.2023 17:19:06
 
В шапке таблице $C$1:$O$1& - убрал местами лишние пробелы в конце
Код
=ЕСЛИОШИБКА(ПОДСТАВИТЬ(
ИНДЕКС(ФИЛЬТР.XML("<j><i>"&ПОДСТАВИТЬ(P3;";";"</i><i>")&"</i></j>";"//i");
ПОИСКПОЗ($C$1:$O$1&"*";ФИЛЬТР.XML("<j><i>"&ПОДСТАВИТЬ(P3;";";"</i><i>")&"</i></j>";"//i");0));
$C$1:$O$1&" ";"");"")
Изменено: Тимофеев - 01.12.2023 19:16:43
 
Добрый день!

Большое спасибо за ответ и формулу.)) Моих знаний excel не хватает чтобы сходу "вкурить" как это работает, буду изучать. Верно ли, что вы решили поставленную задачу без регулярных выражений?
 
arrays - Excel - Extract substring(s) from string using FILTERXML - Stack Overflow
Деление слипшегося текста функцией ФИЛЬТР.XML (planetaexcel.ru)
How to use the FILTERXML function (get-digital-help.com)
Регулярок там нет
Изменено: Тимофеев - 04.12.2023 10:27:35
 
Добрый день!

Ещё раз спасибо за ваше участие. Разбирался с формулой, прошу пояснить следующий момент, не понял, как вы добились, что в таблице отображаются необходимые значения. Я так понял работу вашей формулы:
1. функция подставить меняете в ячейке источнике знак ";" на теги, подготавливая данные для обработки функцией фильтр.XML
2. функция фильтр.XML делит ячейку источник на массив.
3. из полученного массива, функция индекс, возвращает необходимое значения, используя для "поиска" нужного значения функцию поискпоз
4. функция еслиошибка возвращает пробел, если в ячейке источнике (трансформированном в массив) не найдено значение из "шапки" таблицы

Вопрос, как вы добились, что в самой таблице отображены не просто отдельные выражение ТТХ со значением, а только значения?
Страницы: 1
Наверх