Страницы: 1
RSS
Первая буква в ячейке заглавная + Перенос слов при превышении 33 символов в ячейке. Как это сделать?
 
Добрый день. Занимаюсь контекстной рекламой. Хочу автоматизировать часть работы при подготовке объявлений.    
Есть две задачи:  
 
1 задача.  Нужно чтобы, в ячейке первая буква у первого слова преобразовывалась в заглавную (большую).  
 
Скрин: http://s2.ipicture.ru/uploads/20110705/v61U5DSh.jpg  
 
P.S. Нашел текстовую функцию «ПРОПНАЧ», но она делает заглавной первую букву у каждого слова в ячейке, а мне нужно только у первого слова (офиц. описание функции «ПРОПНАЧ»: делает прописной первую букву в каждом слове текста, преобразуя все другие буквы в строчные).  
 
 
2 задача.  При написании текста, если количество символов в ячейке превышает 33, то все лишние слова переносятся в соседнюю ячейку (чтобы в ячейке осталось не более 33 символов).  
 
Скрин: http://s2.ipicture.ru/uploads/20110705/VB93I4J6.jpg  
 
Подскажите, пожалуйста,  формулы или макросы для решения этих задач?
 
Ну вот, пример макроса - вводите данные в любую ячейку столбца А - они будут преобразованы в соответствии с вашими пожеланиями
 
Пример
 
Через формулы
 
макрос
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Большое спасибо за ответы. Даже не ожидал, что столько людей откликнется, ещё и с примерами))  
 
Особенно понравилось решение через формулы от пользователя MCH:  
 
Формула для первого столбца ("C"):    
 
=СЖПРОБЕЛЫ(ПРОПИСН(ЛЕВСИМВ(B1))&ПСТР(B1;2;ПРОСМОТР(2;1/(ПСТР(B1&" ";СТРОКА($1:$34);1)=" ");СТРОКА($1:$34))-1))  
 
Формула для второго столбца ("D"):    
 
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(СТРОЧН(B1);СТРОЧН(C1);""))  
 
Но, попутно возникли ещё два вопроса. Если доработать эту формулу, то:  
 
1) Можно ли сделать, чтобы во втором и третьем столбцах ("C" и "D") автоматически исчезали (удалялись)  символы "+"?  
 
2) Как сделать, чтобы в третьем столбце ("D") после последнего слова ставилась точка и один пробел после неё?  
 
Скрин: http://s2.ipicture.ru/uploads/20110705/kogfN8s4.jpg    
 
Редактированный файлик прикрепил к сообщению.
 
{quote}{login=ipumov }{date=05.07.2011 07:52}{thema=}{post}2) Как сделать, чтобы в третьем столбце ("D") после последнего слова ставилась точка и один пробел после неё?{/post}{/quote}  
А вот ЭТО зачем? Визуально этого пробела не видно, а при обработке ТАКИХ данных, где "невидимый" пробел - нарвётесь на ошибку. Ведь при написании какого-либо условия нужно ЗНАТЬ, что там есть пробел.
 
Это требуется для обработки объявлений контекстной рекламы (в частности ЯндексДирект).  
 
Мне потом нужно будет сцепить две части объявления: после текста добавить ещё одно предложение. И если не сделать точку с пробелом, то текст слипнется.
 
Я бы добавлял пробел на этапе сцепления.
 
=СЖПРОБЕЛЫ(ПРОПИСН(ЛЕВСИМВ(B1))&ПСТР(ПОДСТАВИТЬ(B1;"+";"");2;ПРОСМОТР(2;1/(ПСТР(ПОДСТАВИТЬ(B1;"+";"")&" ";СТРОКА($1:$34);1)=" ");СТРОКА($1:$34))-1))  
 
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(СТРОЧН(ПОДСТАВИТЬ(B1;"+";""));СТРОЧН(C1);""))&ЕСЛИ(ПОДСТАВИТЬ(B1;"+";"")<>C1;". ";"")
 
MCH спасибо за правку формулы. Проверил все отлично работает.  
 
Ещё позавчера не мог и подумать, что смогу столько объявлений так быстро обрабатывать. Класс!  
 
P.S. MCH как можно научится такие же формулы мастерить, как эти мега-формулы которое вы мне прислали?
 
Почаще заглядывайте на форумы по ёкселю, за пару лет ежедневного, решения разных задач можно неплохо поднатореть в этом деле :)    
Практика показывает, на предприятиях, в большинстве случаев, все конструкции сложнее "сумм" или "если", вызывают кататонический ужас.    
Ученье - свет!
 
MCH, спасибо за вашу формулу!  
Также пользуюсь ей.  
 
Только есть вопрос.  
Есть словосочетание, которое меньше 33 знаков - оно остается в столбце и ничего не переносится на новую строчку.    
 
Вот как сделать так, что бы в словосочетании, где меньше 33 знаков, был восклицательный знак. Просто, когда я склеиваю все ключи, то предложение получается незаконченным.  
 
Спс
Страницы: 1
Наверх