Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Как взять нужное переменное значение из текста?

Автор Виталий Медведев, 25.06.2015, 19:21

« назад - далее »

Виталий Медведев

Здравствуйте! Не могу разобраться как мне вытянуть из одной ячейки с текстом нужное мне слово и вставить его в другой столбик?
Пример:
Есть ячейка "I2" в которой содержится: length:210;width:450;height:600 (всё без пробелов) из всего этого текста, мне нужно выдернуть "210" и вставить в ячейку "U2" формулой. Естественно ПОИСК не подойдёт, так как в разных ячейках эти значения разные.
Помогите пожалуйста!

vikttur

Почему именно 210? Какие критерии или правила извлечения данных?

Ваш пример в файле Excel ускорит помощь.

Виталий Медведев

#2
210 я привёл как пример. То есть я с сайта делаю выгрузку и один столбец в этой выгрузке обозначает размеры: "length:длина;width:ширина;height:высота" для каждого товара.
Пример:
есть столбец size и под ним перечислены значения построчно
length:210;width:450;height:600
length:150;width:300;height:550
length:270;width:530;height:740
length:195;width:410;height:580


Так же есть отдельные столбцы length, width, height (три разных столбца), в которые и нужно вставить значения раздельно из столбца size (только цифры).
Должно получиться так:
(1 столбец)
length
210
150
270
195


(2 столбец)
width
450
300
530
410


(3 столбец)
height
600
550
740
580


А пример файла смогу скинуть только завтра((

IKor

посмотрите то ли это, что Вам нужно

Виталий Медведев

#4
Да, вроде бы оно, на работе попробую использовать эту формулу.
Спасибо Вам огромное за помощь!

А можете вкратце объяснить принцип работы данной формулы?
=VALUE(MID($A2;SEARCH(G$1;$A2;1)+LEN(G$1);SEARCH(H$1;$A2;1)-SEARCH(G$1;$A2;1)-LEN(G$1)-1))
Думаю, на основе её дальше разберусь))

vikttur

Паразитировал на файле IKor :)
Вариант:
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A2;":";ПОВТОР(" ";50));";";ПОВТОР(" ";50));(СТОЛБЕЦ(A1)-1)*100+50;50))
Так как слова искомые извесны, их можно прописать в формуле. Меньше вычислений. Еще одно возможное упрощение: если числа всегда трехзначны, не нужно вычислять конец строки:
=ПСТР($A2;ПОИСК("length";$A2)+7;3)
Кстати, на примере последней формулы можно разобраться в работе формулы IKor

Виталий Медведев

#6
Кнопка цитирования не для ответа [МОДЕРАТОР]

Вот обещанный файл примера
В общем столбцы Box size (с размерами length:210;width:450;height:600) и Weight (вес 23.00) - то, откуда должны браться значения для столбца Features

В столбце Futeres прописан текст (описание) из которого сайт выдерает нужные данные.
Соответственно эти значения там должны указываться в квадратных скобках (пр. "Ширина (мм.): N[450];")

А значения не всегда могут быть трёхзначные, есть и двух, есть и четырёх

vikttur

Добавьте три столбца, в которых будут формулы для извлечения значений.
В столбце features формула сцепки:
="(Габариты) Ширина (мм.): N[" & C2 & "]; (Габариты) ...

Виталий Медведев

Да вот создавать дополнительные столбцы не хотелось бы((

В общем, поколдовав и поняв принцип работы формулы Ikor сделал это:

="(Габариты) Ширина (мм.): N["&MID(A2;SEARCH("length:";A2;1)+LEN("length:");SEARCH("width:";A2;1)-SEARCH("length:";A2;1)-LEN("length:")-1)&"]; (Габариты) Высота (мм.): N["&MID(A2;SEARCH("width:";A2;1)+LEN("width:");SEARCH("height:";A2;1)-SEARCH("width:";A2;1)-LEN("width:")-1)&"]; (Габариты) Длина (мм.): N["&RIGHT(A2;LEN(A2)-SEARCH("height:";A2;1)-LEN("height:")+1)&"]; (Габариты) Вес (кг.): N["&MID(B2;1;LEN(B2)-3)&"]"

vikttur

...+LEN("length:")...
Длина слова известна, нет необходимости вычислять дополнительно.

Виталий Медведев

Так правильнее?

="(Габариты) Ширина (мм.): N["&MID(A2;SEARCH("length:";A2;1)+7;SEARCH("width:";A2;1)-SEARCH("length:";A2;1)-8)&"]; (Габариты) Высота (мм.): N["&MID(A2;SEARCH("width:";A2;1)+6;SEARCH("height:";A2;1)-SEARCH("width:";A2;1)-7)&"]; (Габариты) Длина (мм.): N["&RIGHT(A2;LEN(A2)-SEARCH("height:";A2;1)-6)&"]; (Габариты) Вес (кг.): N["&MID(B2;1;LEN(B2)-3)&"]"

zs

=ЕСЛИ(ЕОШ(НАЙТИ(0;ПСТР(ПСТР(A1;НАЙТИ(2;A1);445);НАЙТИ(1;ПСТР(A1;НАЙТИ(2;A1);445));445))=2);"";210)