Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Текст по столбцам по количеству символов НЕ разделяя слова - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Текст по столбцам по количеству символов НЕ разделяя слова (Формулы/Formulas)
Текст по столбцам по количеству символов НЕ разделяя слова
BEEaR Дата: Суббота, 21.03.2015, 00:51 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте, знатоки. подскажите, пожалуйста, как именно можно разделить текст в столбцах по количеству символов? при этом, чтобы слова не разделялись, а оставались целыми и переносились в другой столбец с предлогами.

а теперь конкретнее:
например, нужно разделить ячейку на 30 символе. Если 30 символ находится посреди слова, то делать перенос начиная с этого слова. а если перед словом, на котором 30 символ, есть предлог (слово из максимум 3 букв), то разделение делать от предлога. то есть в некоторых случаях перенос будет происходить по факту до 30 символа.

а теперь пример:
имеем исходные данные
Недорогой ремонт квартир в Москве
по факту 30 символ находится на слове "Москве" - это "с", но исходя из нужных функций, переносится должно "в Москве". таким образом должно получится два столбца:
Недорогой ремонт квартир | в Москве

надеюсь, понятно описал=)


Сообщение отредактировал BEEaR - Суббота, 21.03.2015, 02:37
 
Ответить
СообщениеЗдравствуйте, знатоки. подскажите, пожалуйста, как именно можно разделить текст в столбцах по количеству символов? при этом, чтобы слова не разделялись, а оставались целыми и переносились в другой столбец с предлогами.

а теперь конкретнее:
например, нужно разделить ячейку на 30 символе. Если 30 символ находится посреди слова, то делать перенос начиная с этого слова. а если перед словом, на котором 30 символ, есть предлог (слово из максимум 3 букв), то разделение делать от предлога. то есть в некоторых случаях перенос будет происходить по факту до 30 символа.

а теперь пример:
имеем исходные данные
Недорогой ремонт квартир в Москве
по факту 30 символ находится на слове "Москве" - это "с", но исходя из нужных функций, переносится должно "в Москве". таким образом должно получится два столбца:
Недорогой ремонт квартир | в Москве

надеюсь, понятно описал=)

Автор - BEEaR
Дата добавления - 21.03.2015 в 00:51
ShAM Дата: Суббота, 21.03.2015, 04:39 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
BEEaR, здравствуйте.
Файл и, соответственно, код наглым образом стащил у Андрея (RAN) отсюда: http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=13835
:)
Добавил пару строк, чтобы выполнялось второе условие.
К сообщению приложен файл: BEEaR.xls (39.5 Kb)
 
Ответить
СообщениеBEEaR, здравствуйте.
Файл и, соответственно, код наглым образом стащил у Андрея (RAN) отсюда: http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=13835
:)
Добавил пару строк, чтобы выполнялось второе условие.

Автор - ShAM
Дата добавления - 21.03.2015 в 04:39
BEEaR Дата: Суббота, 21.03.2015, 13:23 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ShAM, здравствуйте) сам алгоритм работы верный) но мне нужно обрабатывать несколько ячеек в столбце, а результат работы размещать не под ячейкой, а в ячейке в правом столбце. то есть, чтобы оно не вниз шло, а вправо) можете допилить?) я уверен, что для вас это дело займёт не более 30 секунд) а я вам на киви скину благодарность на мороженое за ваше время)
 
Ответить
СообщениеShAM, здравствуйте) сам алгоритм работы верный) но мне нужно обрабатывать несколько ячеек в столбце, а результат работы размещать не под ячейкой, а в ячейке в правом столбце. то есть, чтобы оно не вниз шло, а вправо) можете допилить?) я уверен, что для вас это дело займёт не более 30 секунд) а я вам на киви скину благодарность на мороженое за ваше время)

Автор - BEEaR
Дата добавления - 21.03.2015 в 13:23
ShAM Дата: Суббота, 21.03.2015, 14:34 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Хоть вниз, хоть вправо.
К сообщению приложен файл: BEEaR_1.xls (39.5 Kb)
 
Ответить
СообщениеХоть вниз, хоть вправо.

Автор - ShAM
Дата добавления - 21.03.2015 в 14:34
BEEaR Дата: Суббота, 21.03.2015, 14:48 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
это то, что нужно) но он не обрабатывает строки разом. то есть я выделяю несколько строк, нажимаю кнопку, а он обрабатывает только одну строку за раз. то есть если нужно обработать 10 строк, для этого необходимо 10 раз выделить и 10 раз нажать на кнопку) а можно, чтоб он разом это делал для всех выделенных строк? я может что-то не понимаю)
 
Ответить
Сообщениеэто то, что нужно) но он не обрабатывает строки разом. то есть я выделяю несколько строк, нажимаю кнопку, а он обрабатывает только одну строку за раз. то есть если нужно обработать 10 строк, для этого необходимо 10 раз выделить и 10 раз нажать на кнопку) а можно, чтоб он разом это делал для всех выделенных строк? я может что-то не понимаю)

Автор - BEEaR
Дата добавления - 21.03.2015 в 14:48
ShAM Дата: Суббота, 21.03.2015, 15:12 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Ну, никак Вам не угодишь. :)
Выделяйте, например, В4:В10 и жмите кнопку.
К сообщению приложен файл: BEEaR_2.xls (43.0 Kb)
 
Ответить
СообщениеНу, никак Вам не угодишь. :)
Выделяйте, например, В4:В10 и жмите кнопку.

Автор - ShAM
Дата добавления - 21.03.2015 в 15:12
BEEaR Дата: Суббота, 21.03.2015, 15:17 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
вот оно!=) отлично. спасибо) отблагодарю на киви или вебмани)
 
Ответить
Сообщениевот оно!=) отлично. спасибо) отблагодарю на киви или вебмани)

Автор - BEEaR
Дата добавления - 21.03.2015 в 15:17
ShAM Дата: Суббота, 21.03.2015, 15:36 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
[offtop]Если что, благодарите Андрея (RAN). А я что, я ничо, я просто так зашел. ;)
[/offtop]
 
Ответить
Сообщение[offtop]Если что, благодарите Андрея (RAN). А я что, я ничо, я просто так зашел. ;)
[/offtop]

Автор - ShAM
Дата добавления - 21.03.2015 в 15:36
BEEaR Дата: Суббота, 21.03.2015, 15:47 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ну вы откликнулись, помогли мне. все мы используем предыдущий опыт других людей, иначе бы не было прогресса) это вы уже можете поделиться с Андреем, так как использовали его наработки, но я говорю спасибо вам. но и теперь уже, так как знаю, что Андрей внёс в это большой вклад, ему тоже=) в целом я понял, что вы имеете ввиду: работа была для вас не тяжёлая) однако мне вы очень сильно помогли минимизировать ручной труд) если что кидайте в личку реквизиты) спасибо)
 
Ответить
Сообщениену вы откликнулись, помогли мне. все мы используем предыдущий опыт других людей, иначе бы не было прогресса) это вы уже можете поделиться с Андреем, так как использовали его наработки, но я говорю спасибо вам. но и теперь уже, так как знаю, что Андрей внёс в это большой вклад, ему тоже=) в целом я понял, что вы имеете ввиду: работа была для вас не тяжёлая) однако мне вы очень сильно помогли минимизировать ручной труд) если что кидайте в личку реквизиты) спасибо)

Автор - BEEaR
Дата добавления - 21.03.2015 в 15:47
RAN Дата: Суббота, 21.03.2015, 16:43 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub мяв()
      Const minLenth& = 3
      Dim arr, arrt(), myLong&, flag As Boolean
      Dim i&, k&, rr&, kk&
      On Error GoTo мяв_Error
      '    myLong = 25
      myLong = InputBox("Длина строки не задана" & Chr(13) & Chr(13) _
                      & "предлагается 30 знаков", , 30)
      arr = Split(Trim$(Selection))
      Do
          ReDim Preserve arrt(k)
          Do While kk <= myLong
              arrt(k) = arrt(k) & " " & arr(i)
              i = i + 1
              If i > UBound(arr) Then flag = True: Exit Do
              kk = Len(arrt(k)) + Len(arr(i)) - 1
          Loop
          kk = 0

          If Len(arrt(k)) - InStrRev(arrt(k), " ") < minLenth Then
              arrt(k) = Trim$(Left$(arrt(k), InStrRev(arrt(k), " ")))
              i = i - 1
          Else
              arrt(k) = Trim$(arrt(k))
          End If

          If flag Then Else k = k + 1

      Loop While Not flag
      Selection.Offset(, 2).Resize(, UBound(arrt)+1) = arrt
      On Error GoTo 0
      Exit Sub

мяв_Error:
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 21.03.2015, 16:46
 
Ответить
Сообщение[vba]
Код
Sub мяв()
      Const minLenth& = 3
      Dim arr, arrt(), myLong&, flag As Boolean
      Dim i&, k&, rr&, kk&
      On Error GoTo мяв_Error
      '    myLong = 25
      myLong = InputBox("Длина строки не задана" & Chr(13) & Chr(13) _
                      & "предлагается 30 знаков", , 30)
      arr = Split(Trim$(Selection))
      Do
          ReDim Preserve arrt(k)
          Do While kk <= myLong
              arrt(k) = arrt(k) & " " & arr(i)
              i = i + 1
              If i > UBound(arr) Then flag = True: Exit Do
              kk = Len(arrt(k)) + Len(arr(i)) - 1
          Loop
          kk = 0

          If Len(arrt(k)) - InStrRev(arrt(k), " ") < minLenth Then
              arrt(k) = Trim$(Left$(arrt(k), InStrRev(arrt(k), " ")))
              i = i - 1
          Else
              arrt(k) = Trim$(arrt(k))
          End If

          If flag Then Else k = k + 1

      Loop While Not flag
      Selection.Offset(, 2).Resize(, UBound(arrt)+1) = arrt
      On Error GoTo 0
      Exit Sub

мяв_Error:
End Sub
[/vba]

Автор - RAN
Дата добавления - 21.03.2015 в 16:43
ShAM Дата: Суббота, 21.03.2015, 17:36 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
О, вот и Автор. Андрей, спасибо за тот код (уже пару лет использую) и, отдельно, за новый. hands
 
Ответить
СообщениеО, вот и Автор. Андрей, спасибо за тот код (уже пару лет использую) и, отдельно, за новый. hands

Автор - ShAM
Дата добавления - 21.03.2015 в 17:36
RAN Дата: Суббота, 21.03.2015, 18:38 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Немного модифицировал. Переносит на новую строку все предлоги (текст до 3 символов)
Мяв (25 символов) - "разделяем правильно и | не правильно"
Мяу (25 символов) - "разделяем правильно | и не правильно"
[vba]
Код
Sub мяу()
      Const minLenth& = 3
      Dim arr, arrt(), myLong&, flag As Boolean
      Dim i&, k&, rr&, kk&
      '    myLong = 25
      On Error GoTo мяу_Error

      myLong = InputBox("Длина строки не задана" & Chr(13) & Chr(13) _
                      & "предлагается 30 знаков", , 30)
      arr = Split(Trim$(Selection))
      Do
          ReDim Preserve arrt(k)
          Do While kk <= myLong
              arrt(k) = arrt(k) & " " & arr(i)
              i = i + 1
              If i > UBound(arr) Then flag = True: Exit Do
              kk = Len(arrt(k)) + Len(arr(i)) - 1
          Loop
          kk = 0
         Do While Len(arrt(k)) - InStrRev(arrt(k), " ") < minLenth
         If Len(arrt(k)) < minLenth Then Exit Do
             arrt(k) = Trim$(Left$(arrt(k), InStrRev(arrt(k), " ")))
             i = i - 1
          Loop
          arrt(k) = Trim$(arrt(k))
          k = k + 1
      Loop Until flag
      Selection.Offset(, 2).Resize(, UBound(arrt) + 1) = arrt
      On Error GoTo 0
      Exit Sub
мяу_Error:
      MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure мяу of Module Module2"
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 21.03.2015, 19:19
 
Ответить
СообщениеНемного модифицировал. Переносит на новую строку все предлоги (текст до 3 символов)
Мяв (25 символов) - "разделяем правильно и | не правильно"
Мяу (25 символов) - "разделяем правильно | и не правильно"
[vba]
Код
Sub мяу()
      Const minLenth& = 3
      Dim arr, arrt(), myLong&, flag As Boolean
      Dim i&, k&, rr&, kk&
      '    myLong = 25
      On Error GoTo мяу_Error

      myLong = InputBox("Длина строки не задана" & Chr(13) & Chr(13) _
                      & "предлагается 30 знаков", , 30)
      arr = Split(Trim$(Selection))
      Do
          ReDim Preserve arrt(k)
          Do While kk <= myLong
              arrt(k) = arrt(k) & " " & arr(i)
              i = i + 1
              If i > UBound(arr) Then flag = True: Exit Do
              kk = Len(arrt(k)) + Len(arr(i)) - 1
          Loop
          kk = 0
         Do While Len(arrt(k)) - InStrRev(arrt(k), " ") < minLenth
         If Len(arrt(k)) < minLenth Then Exit Do
             arrt(k) = Trim$(Left$(arrt(k), InStrRev(arrt(k), " ")))
             i = i - 1
          Loop
          arrt(k) = Trim$(arrt(k))
          k = k + 1
      Loop Until flag
      Selection.Offset(, 2).Resize(, UBound(arrt) + 1) = arrt
      On Error GoTo 0
      Exit Sub
мяу_Error:
      MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure мяу of Module Module2"
End Sub
[/vba]

Автор - RAN
Дата добавления - 21.03.2015 в 18:38
akkord87 Дата: Пятница, 20.05.2016, 15:37 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
RAN, подскажите, а как этот код запустить?
[moder]Не надо задавать один и тот же вопрос в нескольких темах. Ждите ответа в своей.[/moder]


Сообщение отредактировал Manyasha - Пятница, 20.05.2016, 15:42
 
Ответить
СообщениеRAN, подскажите, а как этот код запустить?
[moder]Не надо задавать один и тот же вопрос в нескольких темах. Ждите ответа в своей.[/moder]

Автор - akkord87
Дата добавления - 20.05.2016 в 15:37
amedov78 Дата: Суббота, 01.04.2017, 09:38 | Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте !

Изучив предыдущие посты, не решил свою задачу:
Есть форма акта скрытых работ. Для удобства заполнения воспользовался функциями просмотра и сцепления.

Но осталась задача:
текстовое содержимое ячейки разделить (предположим по 80 символов) и отобразить в нескольких строках формы, при этом не меняя количество строк в форме, а только заполняя пустые.

в листах БК и УО приложенного файла этот текст расположен в ячейках M60 и M75, а отобразить разделенный текст требуется в выделенных желтым цветом слева строках.

Число строк (максимальное) в одном случае 5, а в другом 4.

И если возможно, то пересчет этих действий производить при переходе с одного листа на другой, без использования доп. кнопок (иконок).
К сообщению приложен файл: 7259145.xlsx (54.2 Kb)
 
Ответить
СообщениеЗдравствуйте !

Изучив предыдущие посты, не решил свою задачу:
Есть форма акта скрытых работ. Для удобства заполнения воспользовался функциями просмотра и сцепления.

Но осталась задача:
текстовое содержимое ячейки разделить (предположим по 80 символов) и отобразить в нескольких строках формы, при этом не меняя количество строк в форме, а только заполняя пустые.

в листах БК и УО приложенного файла этот текст расположен в ячейках M60 и M75, а отобразить разделенный текст требуется в выделенных желтым цветом слева строках.

Число строк (максимальное) в одном случае 5, а в другом 4.

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

Автор - amedov78
Дата добавления - 01.04.2017 в 09:38
AlexM Дата: Суббота, 01.04.2017, 09:47 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4484
Репутация: 1115 ±
Замечаний: 0% ±

Excel 2003
См. тему или создайте новую тему со своим вопросом.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Суббота, 01.04.2017, 09:48
 
Ответить
СообщениеСм. тему или создайте новую тему со своим вопросом.

Автор - AlexM
Дата добавления - 01.04.2017 в 09:47
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Текст по столбцам по количеству символов НЕ разделяя слова (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!