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

Вход

Регистрация

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

 

= Мир MS Excel/Обрезать текст до 30 символов с сохранением последнего слова - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Обрезать текст до 30 символов с сохранением последнего слова (Формулы/Formulas)
Обрезать текст до 30 символов с сохранением последнего слова
Maksim156 Дата: Понедельник, 16.11.2015, 21:58 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Добрый день. В ячейке А1 есть фраза, можно в ячейке С1 вставить фразу, которая не превышает 30 символов, но что бы последнее слово было не обрезано.
К сообщению приложен файл: 367717475.xlsx (9.1 Kb)
 
Ответить
СообщениеДобрый день. В ячейке А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 символов.
К сообщению приложен файл: 367717475_1.xlsx (9.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
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)



Номер мобильного модема (без голосовой связи)
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
Дата добавления - 30.11.2015 в 15:51
Эх_Прорвёмся Дата: Понедельник, 30.11.2015, 15:54 | Сообщение № 5
Группа: Заблокированные
Ранг: Участник
Сообщений: 72
Репутация: -21 ±
Замечаний: 100% ±

Excel 2003
AlexM, спасибо, а как оставшуюся часть текста вставить в ячейку D1?

И так Вы будете каждый раз новый пункт добавлять? "Огласите, пожалуйста, весь список".


Объяснять как бабушке на скамеечке у подъезда.
 
Ответить
Сообщение
AlexM, спасибо, а как оставшуюся часть текста вставить в ячейку D1?

И так Вы будете каждый раз новый пункт добавлять? "Огласите, пожалуйста, весь список".

Автор - Эх_Прорвёмся
Дата добавления - 30.11.2015 в 15:54
AlexM Дата: Понедельник, 30.11.2015, 16:09 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4493
Репутация: 1115 ±
Замечаний: 0% ±

Excel 2003
оставшуюся часть текста вставить в ячейку D1
Используйте функцию ПОДСТАВИТЬ()



Номер мобильного модема (без голосовой связи)
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)


"Учиться, учиться и еще раз учиться!"
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)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
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]

Автор - МВТ
Дата добавления - 30.11.2015 в 20:55
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Обрезать текст до 30 символов с сохранением последнего слова (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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