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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2013, 15:55   #1
Konstantin_Z
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 65
По умолчанию Парсинг текста по пробелу

в ячейках есть текст, нужно разнести каждое слово текста (при этом слово всегда отделяется от следующего пробелом) по ячейкам в соседних столбцах, типа распарсить текст, где разделителем является пробел...
это нужно сделать формулой, у меня идеи есть, но формула получается громоздкая...

подозреваю, что такой вопрос мог уже обсуждаться и уже есть готовое решение

если это так, плиз, поделитесь ссылками на темы, т.к. не знаю по каким ключевым словам искать эти решения

примеры текста (далее будет видно, что длина строки текста и количество слов может быть разное):

Какие есть бесплатные брандмауэры
Где скачать бесплатные антивирусы
Что такое условно-бесплатный софт
Где в Интернете можно найти бесплатные тесты и задания по русскому языку
Где можно скачать InfraRecorder - бесплатную программу для записи дисков
Где в интернете можно найти бесплатные видеоуроки по работе с компьютером
Какие есть особенности бесплатного скачивания фильмов с ЛетитБит letitbitnet для жителей дальнего зарубежья
Какие бесплатные менеджеры закачек с русским интерфейсом умеют скачивать файлы с Letitbitnet без премиум аккаунта
Какие бесплатные менеджеры закачек с русским интерфейсом умеют скачивать файлы с Uploadingcom без премиум аккаунта
Konstantin_Z вне форума Ответить с цитированием
Старый 14.02.2013, 16:31   #2
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

А Данные - Текст по столбцам с разделителем Пробел чем не угодил?
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 14.02.2013, 16:38   #3
Konstantin_Z
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 65
По умолчанию

текст по столбцам не подходит по разным причинам (не буду вдаваться в подробности)
решение уже есть, но громоздкое... вводится дополнительно такое количество столбцов, сколько есть слов в текстовой строке
Konstantin_Z вне форума Ответить с цитированием
Старый 14.02.2013, 16:59   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
Function splitstring(s$)
    Dim a, i&
    ReDim b(0 To 200) As String
    a = Split(s)
    For i = 0 To UBound(a): b(i) = a(i): Next
    splitstring = b
End Function
Вводить сразу во всю (до 201 ячейки) строку как формулу массива.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.02.2013, 17:12   #5
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Konstantin_Z Посмотреть сообщение
текст по столбцам не подходит по разным причинам
Назовите хоть одну

Формула массива:
Код:
=ПСТР($A1;НАИМЕНЬШИЙ(ЕСЛИ(ПСТР(" "&$A1&" ";СТРОКА($1:$999);1)=" ";СТРОКА($1:$999));СТОЛБЕЦ(A1));НАИМЕНЬШИЙ(ЕСЛИ(ПСТР(" "&$A1&" ";СТРОКА($1:$999);1)=" ";СТРОКА($1:$999));СТОЛБЕЦ(B1))-НАИМЕНЬШИЙ(ЕСЛИ(ПСТР(" "&$A1&" ";СТРОКА($1:$999);1)=" ";СТРОКА($1:$999));СТОЛБЕЦ(A1)))
Вложения
Тип файла: rar Konstantin_Z.rar (8.4 Кб, 16 просмотров)
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 14.02.2013, 18:51   #6
Konstantin_Z
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 65
По умолчанию

формула делает то, что надо, спасибо большое!
текст по столбцам не подходит по той причине, что изначальный текст также должен остаться в первоначальном виде (то есть в одной ячейке и не распарсенный)...
Konstantin_Z вне форума Ответить с цитированием
Старый 14.02.2013, 18:54   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
текст по столбцам не подходит по той причине, что изначальный текст также должен остаться в первоначальном виде
по-вашему, проще написать сложную формулу массива, и растянуть её по ячейкам,
чем одним нажатием кнопки скопировать столбец, перед тем как применить функцию «текст по столбцам»?
EducatedFool вне форума Ответить с цитированием
Старый 14.02.2013, 19:09   #8
Volodshan
Форумчанин
 
Регистрация: 20.05.2008
Сообщений: 241
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
... чем одним нажатием кнопки скопировать столбец, перед тем как применить функцию «текст по столбцам»?
Зачем копировать?!. Указать поле/столбец, с которого начать разбивку, а исходное не трогать...
Volodshan вне форума Ответить с цитированием
Старый 14.02.2013, 21:07   #9
Konstantin_Z
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 65
По умолчанию

второй аргумент тот, что данные добрасываются/дозаписываются/довносятся вниз списка, т.е. каждый раз делать текст по столбцам не совсем удобно...

кстати, как разнести текст по столбца и при этом оставить исходный текст (предварительно не копируя/дублируя его в отдельный столбец) не разобрался... не получилось так сделать...

к тому же формула - это условно одно действие - растягивание

текст же по столбцам, это как минимум три действия:
1) выделить диапазон 2) зайти в соответствующее меню 3) выбрать / указать разделитель... (при этом еще на всех этапах жать "далее", а в конце "готово")

к тому же первоначальный текст все-же не сохраняется...
Konstantin_Z вне форума Ответить с цитированием
Старый 14.02.2013, 21:12   #10
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

к тому же первоначальный текст все-же не сохраняется...
На шаге 3 - Поместить в: - поставьте курсор и впишите адрес или просто кликните по ячейке.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
парсинг текста, вытащить дату HellMercenariess Общие вопросы Delphi 5 27.07.2012 16:07
Парсинг+замена текста Kapitan4ik Работа с сетью в Delphi 8 01.01.2012 22:53
Парсинг текста с html? taurii Работа с сетью в Delphi 0 08.07.2011 10:42
Назначение цвета и парсинг текста, RichEdit JoLan Компоненты Delphi 0 14.03.2011 23:28