Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2010, 14:17   #1
seto
Новичок
Джуниор
 
Регистрация: 24.04.2010
Сообщений: 2
По умолчанию Как разбить одну строку на несколько, ориентируясь на Заглавные буквы

Добрый день!

Подскажите, какую фомулу/макрос здест применить?

Есть множество строк из датафида с описанием товара - каждая строчка имеет сразу несколько фраз, каждая фраза начинается с большой буквы.
Нужно отделить фразы из описаний, так что бы каждая фраза была в отдельной ячейке.

Т.е. если сейчас клетка A1 выглядит так:
A1 Textured leather Rubber sole Bow detailing Stitch detailing Leather

То надо что бы на выходе эта ячейка разбилась следующим образом:
B1 Textured leather
B2 Rubber sole
B3 Bow detailing
B4 Stitch detailing
B5 Leather

Всем заранее огромное мерси!
seto вне форума Ответить с цитированием
Старый 24.04.2010, 16:37   #2
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

можно, например, так

Откройте файл, запустите макрос "TextDivide" - Сервис - Макросы

Примечание: результат выводится горизонтально, при большом количестве строк для деления это гораздо удобней
Вложения
Тип файла: zip TextDivide.zip (8.8 Кб, 119 просмотров)
EugeneS вне форума Ответить с цитированием
Старый 24.04.2010, 17:01   #3
seto
Новичок
Джуниор
 
Регистрация: 24.04.2010
Сообщений: 2
По умолчанию

Цитата:
Сообщение от EugeneS Посмотреть сообщение
можно, например, так

Откройте файл, запустите макрос "TextDivide" - Сервис - Макросы

Примечание: результат выводится горизонтально, при большом количестве строк для деления это гораздо удобней
Спасибо, вы очень помогли!
seto вне форума Ответить с цитированием
Старый 24.04.2010, 18:36   #4
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Как формулист поизвращался с формулами (1 доп. столбец).

P.S.
Для тех, кто с "Планеты Excel", думаю задачка будет интересна для "Избушки формУлистов".

Подправил формулу в 18:36
Вложения
Тип файла: rar ПР2.rar (4.2 Кб, 63 просмотров)

Последний раз редактировалось ZORRO2005; 24.04.2010 в 19:29.
ZORRO2005 вне форума Ответить с цитированием
Старый 24.04.2010, 19:24   #5
kim2
Форумчанин
 
Регистрация: 23.03.2010
Сообщений: 101
По умолчанию

Чуть короче для доп. столбца:
=НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР($A$1& " Z";СТРОКА($A$1:ИНДЕКС(A:A;ДЛСТР($A$ 1&" Z")));1))=ТРАНСП(СТРОКА($65:$90));С ТРОКА($A$1:ИНДЕКС(A:A;ДЛСТР($A$1&" Z"))));СТРОКА(A1))
kim2 вне форума Ответить с цитированием
Старый 24.04.2010, 20:40   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
=ПСТР(R[-1]C;НАИМЕНЬШИЙ((КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))>=65)*(КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))<=90)*СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));СТРОКА(ДВССЫЛ(ДЛСТР(R[-1]C)+2-СУММ((КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))>=65)*(КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))<=90))&":"&ДЛСТР(R[-1]C))));НАИМЕНЬШИЙ((КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))>=65)*(КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))<=90)*СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));СТРОКА(ДВССЫЛ(ДЛСТР(R[-1]C)+3-СУММ((КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))>=65)*(КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))<=90))&":"&ДЛСТР(R[-1]C)+1)))-НАИМЕНЬШИЙ((КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))>=65)*(КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))<=90)*СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));СТРОКА(ДВССЫЛ(ДЛСТР(R[-1]C)+2-СУММ((КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))>=65)*(КОДСИМВ(ПСТР(R[-1]C&"I";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(R[-1]C&"I")));1))<=90))&":"&ДЛСТР(R[-1]C)))))
Одна формула. Длинновата правда вышла, зато одна.
Файл в формате 2007, в 2003 не конвертируется, Excel пишет, что не получается.
ZORRO2005, неси ее прямо в "Избушку формУлистов".
Идея формулы довольно проста:
1.определяю количество заглавных букв в строке
2.определяю массив с позициями заглавных букв (М1)
3.аналогично определяется массив с позициями заглавных, начиная со второй заглавной (М2)
4.строка разбивается на подстроки простой ПСТР(СтрокаСДанных; М1; М2-М1)
Вложения
Тип файла: rar Книга308.rar (6.1 Кб, 53 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 24.04.2010, 21:42   #7
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

IgorGO,
А на что Excel ругается?
У меня ругается, как на скриншоте...
В 2007 у меня получилась длина 384.
Изображения
Тип файла: jpg рисунок.jpg (359.4 Кб, 154 просмотров)

Последний раз редактировалось ZORRO2005; 24.04.2010 в 22:59.
ZORRO2005 вне форума Ответить с цитированием
Старый 24.04.2010, 22:17   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

пишет, что много уровней вложенности.
ругался только на попытку записать файл в формате офис-2003 .
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.12.2010, 18:35   #9
ladyjane
Новичок
Джуниор
 
Регистрация: 23.12.2010
Сообщений: 1
По умолчанию

Помогите разбить текст по строке - в одной ячейке фамилия имя и отчество, а нужно разбить на три ячейки. В таблице 1200 строк
сейчас "Сидоров Иван Петрович"
нужно "Сидоров" "Иван" "Петрович"
Заранее благодарю!
ladyjane вне форума Ответить с цитированием
Старый 26.12.2010, 18:44   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Меню Данные - Текст по столбцам
Разделитель - пробел
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как разбить содержимое одной ячейки на несколько? Avtocur Microsoft Office Excel 24 16.05.2012 09:05
заглавные буквы, прописные ЦЕРЦЕЯ Microsoft Office Excel 1 21.01.2010 14:43
Строки. Заглавные буквы после точки (Delphi) ekzobyte Помощь студентам 8 27.05.2009 22:38
Строчные буквы в заглавные и наоборот Delphi 7 tarakan1983 Помощь студентам 3 20.03.2009 14:15
Почему скрипт преобразует ЗАГЛАВНЫЕ буквы в строчные??? lex1 Microsoft Office Excel 3 17.03.2008 11:21