Обрезать текст до 30 символов с сохранением последнего слова
Maksim156
Дата: Понедельник, 16.11.2015, 21:58 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
Добрый день. В ячейке А1 есть фраза, можно в ячейке С1 вставить фразу, которая не превышает 30 символов, но что бы последнее слово было не обрезано.
Добрый день. В ячейке А1 есть фраза, можно в ячейке С1 вставить фразу, которая не превышает 30 символов, но что бы последнее слово было не обрезано. Maksim156
Ответить
Сообщение Добрый день. В ячейке А1 есть фраза, можно в ячейке С1 вставить фразу, которая не превышает 30 символов, но что бы последнее слово было не обрезано. Автор - Maksim156 Дата добавления - 16.11.2015 в 21:58
_Boroda_
Дата: Понедельник, 16.11.2015, 22:14 |
Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Так нужно?Код
=ЛЕВБ(A1;МАКС(СТРОКА($1:$30)*(ПСТР(A1;СТРОКА($1:$30);1)=" "))-1)
Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер Подразумевается, что первое слово не длиннее 29 символов.
Так нужно?Код
=ЛЕВБ(A1;МАКС(СТРОКА($1:$30)*(ПСТР(A1;СТРОКА($1:$30);1)=" "))-1)
Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер Подразумевается, что первое слово не длиннее 29 символов. _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Так нужно?Код
=ЛЕВБ(A1;МАКС(СТРОКА($1:$30)*(ПСТР(A1;СТРОКА($1:$30);1)=" "))-1)
Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер Подразумевается, что первое слово не длиннее 29 символов. Автор - _Boroda_ Дата добавления - 16.11.2015 в 22:14
AlexM
Дата: Понедельник, 16.11.2015, 22:25 |
Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4493
Репутация:
1115
±
Замечаний:
0% ±
Excel 2003
Не массивнаяКод
=ЛЕВБ(A1;ПРОСМОТР(30;ПОИСК(" ";A1&" ";СТРОКА($1:$30)))-1)
Не массивнаяКод
=ЛЕВБ(A1;ПРОСМОТР(30;ПОИСК(" ";A1&" ";СТРОКА($1:$30)))-1)
AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Сообщение Не массивнаяКод
=ЛЕВБ(A1;ПРОСМОТР(30;ПОИСК(" ";A1&" ";СТРОКА($1:$30)))-1)
Автор - AlexM Дата добавления - 16.11.2015 в 22:25
Maksim156
Дата: Понедельник, 30.11.2015, 15:51 |
Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
AlexM, спасибо, а как оставшуюся часть текста вставить в ячейку D1?
AlexM, спасибо, а как оставшуюся часть текста вставить в ячейку D1? Maksim156
Ответить
Сообщение AlexM, спасибо, а как оставшуюся часть текста вставить в ячейку D1? Автор - Maksim156 Дата добавления - 30.11.2015 в 15:51
Эх_Прорвёмся
Дата: Понедельник, 30.11.2015, 15:54 |
Сообщение № 5
Группа: Заблокированные
Ранг: Участник
Сообщений: 72
Репутация:
-21
±
Замечаний:
100% ±
Excel 2003
AlexM, спасибо, а как оставшуюся часть текста вставить в ячейку D1?
И так Вы будете каждый раз новый пункт добавлять? "Огласите, пожалуйста, весь список".
AlexM, спасибо, а как оставшуюся часть текста вставить в ячейку D1?
И так Вы будете каждый раз новый пункт добавлять? "Огласите, пожалуйста, весь список".Эх_Прорвёмся
Объяснять как бабушке на скамеечке у подъезда.
Ответить
Сообщение AlexM, спасибо, а как оставшуюся часть текста вставить в ячейку D1?
И так Вы будете каждый раз новый пункт добавлять? "Огласите, пожалуйста, весь список".Автор - Эх_Прорвёмся Дата добавления - 30.11.2015 в 15:54
AlexM
Дата: Понедельник, 30.11.2015, 16:09 |
Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4493
Репутация:
1115
±
Замечаний:
0% ±
Excel 2003
оставшуюся часть текста вставить в ячейку D1
Используйте функцию ПОДСТАВИТЬ()
оставшуюся часть текста вставить в ячейку D1
Используйте функцию ПОДСТАВИТЬ()AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Сообщение оставшуюся часть текста вставить в ячейку D1
Используйте функцию ПОДСТАВИТЬ()Автор - AlexM Дата добавления - 30.11.2015 в 16:09
pabchek
Дата: Понедельник, 30.11.2015, 16:46 |
Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация:
218
±
Замечаний:
0% ±
Excel 2007
а может так? Код
=ПСТР(A1;1;30-ДЛСТР(A1)-1/ПРОСМОТР(;-1/ПОИСК(" ";A1;СТРОКА(A1:ИНДЕКС(A:A;ДЛСТР(A1))))))&ПСТР(A1;-1/ПРОСМОТР(;-1/ПОИСК(" ";A1;СТРОКА(A1:ИНДЕКС(A:A;ДЛСТР(A1)))))+1;99)
а может так? Код
=ПСТР(A1;1;30-ДЛСТР(A1)-1/ПРОСМОТР(;-1/ПОИСК(" ";A1;СТРОКА(A1:ИНДЕКС(A:A;ДЛСТР(A1))))))&ПСТР(A1;-1/ПРОСМОТР(;-1/ПОИСК(" ";A1;СТРОКА(A1:ИНДЕКС(A:A;ДЛСТР(A1)))))+1;99)
pabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092
Ответить
Сообщение а может так? Код
=ПСТР(A1;1;30-ДЛСТР(A1)-1/ПРОСМОТР(;-1/ПОИСК(" ";A1;СТРОКА(A1:ИНДЕКС(A:A;ДЛСТР(A1))))))&ПСТР(A1;-1/ПРОСМОТР(;-1/ПОИСК(" ";A1;СТРОКА(A1:ИНДЕКС(A:A;ДЛСТР(A1)))))+1;99)
Автор - pabchek Дата добавления - 30.11.2015 в 16:46
_Boroda_
Дата: Понедельник, 30.11.2015, 18:39 |
Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Или Код
=ПСТР(A1;ДЛСТР(C1)+2;999)
Или Код
=ПСТР(A1;ДЛСТР(C1)+2;999)
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Или Код
=ПСТР(A1;ДЛСТР(C1)+2;999)
Автор - _Boroda_ Дата добавления - 30.11.2015 в 18:39
МВТ
Дата: Понедельник, 30.11.2015, 20:55 |
Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация:
137
±
Замечаний:
0% ±
Excel 2007
Возможно устроит пользовательская функция (UDF)?[vba]Код
Function tt(Текст As String, Длина As Long, НомерВхождения As Long) As String Dim List As Object With CreateObject("VBScript.RegExp") .Global = True .Ignorecase = True .Pattern = "(.){1," & Длина & "}(?=[^а-яё])" If .test(Текст) Then Set List = .Execute(Текст) If List.Count >= НомерВхождения Then tt = List.Item(НомерВхождения - 1) '.Submatches(0) End If End With End Function
[/vba]
Возможно устроит пользовательская функция (UDF)?[vba]Код
Function tt(Текст As String, Длина As Long, НомерВхождения As Long) As String Dim List As Object With CreateObject("VBScript.RegExp") .Global = True .Ignorecase = True .Pattern = "(.){1," & Длина & "}(?=[^а-яё])" If .test(Текст) Then Set List = .Execute(Текст) If List.Count >= НомерВхождения Then tt = List.Item(НомерВхождения - 1) '.Submatches(0) End If End With End Function
[/vba] МВТ
Ответить
Сообщение Возможно устроит пользовательская функция (UDF)?[vba]Код
Function tt(Текст As String, Длина As Long, НомерВхождения As Long) As String Dim List As Object With CreateObject("VBScript.RegExp") .Global = True .Ignorecase = True .Pattern = "(.){1," & Длина & "}(?=[^а-яё])" If .test(Текст) Then Set List = .Execute(Текст) If List.Count >= НомерВхождения Then tt = List.Item(НомерВхождения - 1) '.Submatches(0) End If End With End Function
[/vba] Автор - МВТ Дата добавления - 30.11.2015 в 20:55