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

Вход

Регистрация

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

 

= Мир MS Excel/Сокращение излишни длинного текста - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Сокращение излишни длинного текста (Формулы/Formulas)
Сокращение излишни длинного текста
AndSh Дата: Вторник, 05.06.2018, 14:02 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем привет, заранее спасибо за помощь!
Проблема в следующем: в столбце текст с разной длинной, необходимо в первом столбце удалить лишний текст длиннее 81 символа, а во втором длиннее 35 символов. Также необходимо чтобы текст сокращался по словам и не было обрывка слова. Например: текст первой строчки

"1PHASE-TRACK, COMMO PD-1 светильник подвесной для лампы GX53 13Вт макс., хром/ стекло мат/ад-р белый"

в Первом столбце - "1PHASE-TRACK, COMMO PD-1 светильник подвесной для лампы GX53 13Вт макс., хром/ стекл"

во втором - "1PHASE-TRACK, COMMO PD-1 светильник"
К сообщению приложен файл: 1417950.xls(29.0 Kb)


Сообщение отредактировал AndSh - Вторник, 05.06.2018, 14:14
 
Ответить
СообщениеВсем привет, заранее спасибо за помощь!
Проблема в следующем: в столбце текст с разной длинной, необходимо в первом столбце удалить лишний текст длиннее 81 символа, а во втором длиннее 35 символов. Также необходимо чтобы текст сокращался по словам и не было обрывка слова. Например: текст первой строчки

"1PHASE-TRACK, COMMO PD-1 светильник подвесной для лампы GX53 13Вт макс., хром/ стекло мат/ад-р белый"

в Первом столбце - "1PHASE-TRACK, COMMO PD-1 светильник подвесной для лампы GX53 13Вт макс., хром/ стекл"

во втором - "1PHASE-TRACK, COMMO PD-1 светильник"

Автор - AndSh
Дата добавления - 05.06.2018 в 14:02
sboy Дата: Вторник, 05.06.2018, 14:10 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2105
Репутация: 604 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Приложите пример с 10 строками-исходниками, тренироваться не на чем :)
 
Ответить
СообщениеДобрый день.
Приложите пример с 10 строками-исходниками, тренироваться не на чем :)

Автор - sboy
Дата добавления - 05.06.2018 в 14:10
_Boroda_ Дата: Вторник, 05.06.2018, 14:11 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13187
Репутация: 5422 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter
Код
=ПСТР(A1;1;МАКС((ПСТР(A1&" ";СТРОКА($1:$82);1)=" ")*СТРОКА($1:$82))-1)


Код
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A1;B1))


В Вашем примере в первом разделенном тексте 84 символа

Чуть поправил формулу

Файл _1 - Ваш
К сообщению приложен файл: 451646.xlsm(8.8 Kb) · 1417950_1.xls(51.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter
Код
=ПСТР(A1;1;МАКС((ПСТР(A1&" ";СТРОКА($1:$82);1)=" ")*СТРОКА($1:$82))-1)


Код
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A1;B1))


В Вашем примере в первом разделенном тексте 84 символа

Чуть поправил формулу

Файл _1 - Ваш

Автор - _Boroda_
Дата добавления - 05.06.2018 в 14:11
AndSh Дата: Вторник, 05.06.2018, 14:14 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy, приложил
 
Ответить
Сообщениеsboy, приложил

Автор - AndSh
Дата добавления - 05.06.2018 в 14:14
sboy Дата: Вторник, 05.06.2018, 14:24 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2105
Репутация: 604 ±
Замечаний: 0% ±

Excel 2010
[offtop]
sboy, приложил

Ответ выше

мне добавить нечего :)
 
Ответить
Сообщение[offtop]
sboy, приложил

Ответ выше

мне добавить нечего :)

Автор - sboy
Дата добавления - 05.06.2018 в 14:24
AndSh Дата: Вторник, 05.06.2018, 14:44 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, огромное вам спасибо! Очень помогли. Если бы вы ещё описали как вы это сделали цены бы вам не было)))
Также если не сложно подскажите, пожалуйста, как считать и проверять сколько символов в строчках???
 
Ответить
Сообщение_Boroda_, огромное вам спасибо! Очень помогли. Если бы вы ещё описали как вы это сделали цены бы вам не было)))
Также если не сложно подскажите, пожалуйста, как считать и проверять сколько символов в строчках???

Автор - AndSh
Дата добавления - 05.06.2018 в 14:44
_Boroda_ Дата: Вторник, 05.06.2018, 15:00 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13187
Репутация: 5422 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
1. СТРОКА($1:$82) дает массив 1,2,3,...,82
2. A1&" " - приклеиваем справа к А1 пробел
3. ПСТР(п.2; п.1, 1) - дает массив из 82 первых букв слова из п.2
4. (ПСТР(A1&" ";СТРОКА($1:$82);1)=" ") - приравниваем п.3 к пробелу. Если равно, то ИСТИНА, если нет, то ЛОЖЬ. ИСТИНА = 1, ЛОЖЬ = 0
5. (ПСТР(A1&" ";СТРОКА($1:$82);1)=" ")*СТРОКА($1:$82) - умножаем массив из п.4 на п.1, получаем массив из нулей и порядковых номеров пробелов в тексте из п.2
6. МАКС(п.5) - берем максимум из п.5
7. ПСТР(A1;1; п.6) - из А1 начиная с первого символа берем столько, сколько получили в п.6

Еще немассивный вариант
Код
=ПСТР(A2;1;ПРОСМОТР(;-1/(ПСТР(A2&" ";СТРОКА($1:$82);1)=" ");СТРОКА($1:$82)))

Объяснялка для ПРОСМОТР http://www.excelworld.ru/forum/2-16573-138042-16-1427281717

* Еще был какой-то вариант. Вроде АлексМ писал. Найти не могу
К сообщению приложен файл: 1417950_2.xls(58.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение1. СТРОКА($1:$82) дает массив 1,2,3,...,82
2. A1&" " - приклеиваем справа к А1 пробел
3. ПСТР(п.2; п.1, 1) - дает массив из 82 первых букв слова из п.2
4. (ПСТР(A1&" ";СТРОКА($1:$82);1)=" ") - приравниваем п.3 к пробелу. Если равно, то ИСТИНА, если нет, то ЛОЖЬ. ИСТИНА = 1, ЛОЖЬ = 0
5. (ПСТР(A1&" ";СТРОКА($1:$82);1)=" ")*СТРОКА($1:$82) - умножаем массив из п.4 на п.1, получаем массив из нулей и порядковых номеров пробелов в тексте из п.2
6. МАКС(п.5) - берем максимум из п.5
7. ПСТР(A1;1; п.6) - из А1 начиная с первого символа берем столько, сколько получили в п.6

Еще немассивный вариант
Код
=ПСТР(A2;1;ПРОСМОТР(;-1/(ПСТР(A2&" ";СТРОКА($1:$82);1)=" ");СТРОКА($1:$82)))

Объяснялка для ПРОСМОТР http://www.excelworld.ru/forum/2-16573-138042-16-1427281717

* Еще был какой-то вариант. Вроде АлексМ писал. Найти не могу

Автор - _Boroda_
Дата добавления - 05.06.2018 в 15:00
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Сокращение излишни длинного текста (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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