Страницы: 1
RSS
Извлечение части наименования из ячейки, Можно ли укоротить длинную формулу?
 
День добрый!
Во вложенном файле в столбце А есть данные, а в столбце С результат того, как они должны выглядеть. Формулу я придумал для перевода А в С, но она слишком большая (2 строки) и вводя её в ручную в различных местах велика вероятность ошибки. Может можно её укоротить?
Заранее спасибо за помощь.
Изменено: Олег - 14.01.2014 22:27:20 (не прикрепил файл)
 
Ну, по данному примеру, так:
Код
=ЛЕВБ(ПОДСТАВИТЬ(A1;"-";"    ";2);9)
а там как дальше надо смотреть, Вашу формулу лень изучать :(
 
Укоротил на 116 знаков.
 
А может быть забить её в диспетчер имен?
Изменено: gling - 14.01.2014 22:22:57
 
Олег, что должна извлекать формула?
TLT-758 и число после последнего "/"? Число всегда однозначное?
TLT-758 - первая часть - всегда 7 знаков?
 
первая часть бывает 7 и 8 знаков
после последнего "/" число не всегда однозначное
 
jakim, спасибо, ваша формула значительно короче моей
 
Первая часть:
=ПСТР(A1;1;7+ЕЧИСЛО(-ПСТР(A1;8;1)))
Цитата
после последнего "/" число не всегда однозначное
Нужное число или все, что после знака? Спрашивал о количестве символов в нужном числе.
/1 - один символ
/1-1 - один символ
/45-3 - два символа
 
все символы после "/" до "-" если есть
 
Сколько знаков в нужном значении - 350? 13? не более 25?
Для одного-двух проще, больше - сложнее. Вы же просите укоротить.
После тире, если есть такое в конце - цифра? Или число с большим количеством знаков?
 
=ЕСЛИОШИБКА(ЛЕВСИМВ(A1;НАЙТИ("/";A1)+1);ЛЕВСИМВ(A1;7))
 
headhot, ваша формула не работает если до "/" появляется 4 цифры, и после "-" 2 цифры
 
vikttur, прикрепляю файл со всеми возможными вариантами
 
Тестируйте.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, спасибо. Вот только в в моей формуле 255 символов, а в вашей 585. Не совсем короче получилось
Изменено: Олег - 15.01.2014 12:28:51 (Забыл отблагодарить)
 
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ЕСЛИОШИБКА(ЕСЛИОШИБКА(ПСТР(A1;1;ПОИСК("\";ПОДСТАВИТЬ(A1;"/";"\";1))-1);"")&ПСТР(A1;ПОИСК("\";ПОДСТАВИТЬ(A1;"/";"\";2));99);ПОДСТАВИТЬ(A1;"-";ПОВТОР(" ";99);2));99))

Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ПОДСТАВИТЬ(A1;"/";ПСТР(A1;ПОИСК("\";ПОДСТАВИТЬ(A1;"/";"\";2));99)&ПОВТОР(" ";99);1);A1);"-";ПОВТОР(" ";99);2);99))
Изменено: Nic70y - 15.01.2014 14:22:39 (добавил 2-ю)
 
Можно так:

Код
=ЕСЛИ(ПОДСТАВИТЬ(A1;"/";;2)=A1;ЛЕВБ(ПОДСТАВИТЬ(A1;"-";ПОВТОР(" ";30);2);20);ЛЕВБ(A1;ПОИСК("/";A1)-1)&ПСТР(A1;ПОИСК("/";A1;10);99))
 
Всем отозвавшимся большое спасибо.
Самой короткой и рабочей оказалась формула DV
 
Если работает, то можно еще подсократить:

Код
=ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("/";A1)-1)&ПСТР(A1;ПОИСК("/";A1;10);99);ЛЕВБ(ПОДСТАВИТЬ(A1;"-";ПОВТОР(" ";30);2);20))
 
DV, спасибо, и эта работает
 
...значит еще нужно сократить :)
 
Михаил С., думаете возможно?
 
В начале всегда TLT- :?:
Если да, то:
Ctrl + h
Найти
Заменить на :
1) TLT-
ю
2) -*

3) /*/
/
4) ю
TLT-

и формул не нужно.
 
Nic70y, нет но всегда, но первые 3 символа всегда буквы
Страницы: 1
Наверх