Страницы: 1
RSS
Текст по столбцам формулой
 
Здравствуйте,  
Подскажите, есть такая функция как текст по столбцам с разделителями (Данные текст по столбцам), можно ли формулой сделать то же самое?  
Пример прилагаю
 
Здравствуйте.  
 
34,5 Кб
 
Спасибо )))
 
Вариант:  
=ПСТР(B2&" №";1;ПОИСК(" №";B2&" №")-1)  
=ЕСЛИ(E2=B2;"";ПРАВСИМВ(B2;ДЛСТР(B2)-ДЛСТР(E2)-2))
 
Да работает, но есть но.. не получается вытащить из текста число если к примеру  
 
0,02 г №50 табл  
25 мг №20упак
 
Ну так рисуйте пример согласно правилам - будет решение.
 
Простите, что сразу такого варианта не было в примере.
 
Моя первая работает без изменений, вторую подправил, не вдаваясь в подробности:  
=ЕСЛИ(E2=B2;"";ПСТР(ПРАВСИМВ(B2;ДЛСТР(B2)-ДЛСТР(E2)-2);1;2))  
ПРАВСИМВ(...;1;2) - извлекает только два знака.
 
Работает!!  Спасибо!  
Ну раз уж как говориться просить о помощи до до конца))  
А если нет № то вместо пустого значения, значение =1
 
Блин! Всего не предусматреть! А Если после номера идет трех значное число, то он последний знак обрезает!
 
Пока еще не массивная, но если еще всплывут условия...  
=ЕСЛИ(E2=B2;"";ЕСЛИ(ЕЧИСЛО(--ПСТР(ПРАВСИМВ(B2;ДЛСТР(B2)-ДЛСТР(E2)-2);3;1));ПСТР(ПРАВСИМВ(B2;ДЛСТР(B2)-ДЛСТР(E2)-2);1;3);ПСТР(ПРАВСИМВ(B2;ДЛСТР(B2)-ДЛСТР(E2)-2);1;2)))
 
Можно ли с помощью формул расделить ячейки по столбцам в данном примере?  
Большое СПАСИБО!!!
 
Можно. Но чем больше различий в расположении блоков и в самих блоках, тем сложнее формулы.  
Для блок3 и блок4 достаточно  
=ЛЕВСИМВ(A4;3)  
=ПСТР(A4;5;2)  
В блок5 перед R может быть пробел, нужно добавить функцию:  
=ПОДСТАВИТЬ(ПСТР(A4;ПОИСК("R";A4)+1;3);" ";"")  
Для блок1:  
=ПСТР(ПОДСТАВИТЬ(A4;"*";"");ПОИСК("-";A4)+2;15)  
В конце строки перед знаком "*" пробел может быть, а может и не быть, поэтому, если нужно удалить последний пробел, формулу блок1 необходимо дорастить:  
=СЖПРОБЕЛЫ(ПСТР(...))  
Труднее с блок2 и блок6. Если условия задачи больше не будут меняться (т.е. расположение в других строках структурно похоже на показанное в примере), можно сочинить чего-нибудь на досуге.
 
Попробуйте. Можно еще доделать ограничение второй подстроки в 3 слова, т.е.  
METEO GRIP E+ TL -> METEO GRIP E+
 
{quote}{login=vikttur}{date=01.03.2011 09:20}{thema=}{post}  
Труднее с блок2 и блок6. Если условия задачи больше не будут меняться (т.е. расположение в других строках структурно похоже на показанное в примере), можно сочинить чего-нибудь на досуге.{/post}{/quote}  
Виктор, Спасибо за ответ! Блок2 и блок6 в основном будет, как в примере. Если у ВАС будет время - напишите ещё формулы для них. Они могут быть любой сложности, только чтоб был желаемый результат. Ещё раз Спасибо!!!
 
И Вам большое Спасибо!!! Только я не совсем понял ВАШ ответ. Результат то что надо, только как это работает?
 
Это функция, написанная на VBA. См. Alt+F11
 
Строка 8: "...85 T XL - Marangoni  *", блок6="85 T XL"  
Строка 7: "... TL 79Q - Marangoni *", блок6="79Q". Куда делось "TL"?  
 
Легко определить начало блок2 и конец блок6, основная сложность для формулы - определение места разрыва этих блоков.
 
{quote}{login=vikttur}{date=01.03.2011 03:06}{thema=}{post}Строка 8: "Куда делось "TL"?  
Легко определить начало блок2 и конец блок6, основная сложность для формулы - определение места разрыва этих блоков.{/post}{/quote}  
TL сдесь не играет роли. Основа в 6 столбцах (как в примере).
 
{quote}{login=Казанский}{date=01.03.2011 11:37}{thema=Vanya7819}{post}Попробуйте. Можно еще доделать ограничение второй подстроки в 3 слова, т.е.  
METEO GRIP E+ TL -> METEO GRIP E+{/post}{/quote}  
Буду очень ВАМ благодарен, - распишите подробно, как работает каждая строка в VBA (в Вашем примере, - можно в екселе). У меня пример только по 25 вариантах - в остальном я постараюсь розобратся сам по ВАШИМ подсказкам.     "TL" - не играет роли - лучше бы его тоже забрать. Спасибо!!!
 
Формулы. ради интереса домучил определение блок2 и блок6.  
Тире с пробелами и без; "*" - то оно есть, то нет, то с пробелом; блок6 то с пробелом после числа, то без, не имеет общего параметра и т.д.    
Практического применения почти никакого, потому что такие формулы нужно писать под конкретную структуру данных. Какие-нибудь мелкие изменения данных повлекут неработоспособность формул блок2 и блок6.
 
{quote}{login=vikttur}{date=03.03.2011 01:43}{thema=}{post}Формулы. ради интереса домучил определение блок2 и блок6.  
{/post}{/quote}  
Спасибо!!!  
У меня ещё такой вопрос, может глупый ))), а ВПР, в данной ситуации, ничем не поможет?
 
Слабо представляю. Почему ВПР, а не, скажем, СЛУЧМЕЖДУ? :)
Страницы: 1
Читают тему
Наверх