Страницы: 1
RSS
При сцеплении нескольких фамилий нужно избавиться от лишних запятых
 
В ячейке A14 должны быть перечислены все фамилии начиная с В2 по В11. Я применил формулу: "Сцепить", но например если в ячейке В9,В10 и В11 будет пустое место то в ячейке А14 появляется следующая запись:

Логинов Сергей Петрович, Иванова Ольга Петровна, Петров Николай Ильич, Шаповалов Олег Викторович, Ретров Максим Павлович, Ветров Иван Григорьевич, Ретрова Ангелина Павловна, , ,

Нужно, чтобы лишние запятые в данном случае не появлялись!
 
=SUBSTITUTE(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(CONCATENATE(B2;",";B3;",";B4;",";B5;",";B6;",";B7;",";B8;",";B9;",";B10;",";B11);" ";"@");",";" "));" ";", ");"@";" ")
Изменено: БМВ - 23.10.2019 07:33:13 (Убрал случайный лишний пробел. Спс Светлому.)
По вопросам из тем форума, личку не читаю.
 
спасибо!
 
до кучи изврат:
=B2&ЕСЛИ(ЕТЕКСТ(B3);", "&B3;"")&ЕСЛИ(ЕТЕКСТ(B4);", "&B4;"")&ЕСЛИ(ЕТЕКСТ(B5);", "&B5;"")&ЕСЛИ(ЕТЕКСТ(B6);", "&B6;"")&ЕСЛИ(ЕТЕКСТ(B7);", "&B7;"")&ЕСЛИ(ЕТЕКСТ(B8);", "&B8;"")&ЕСЛИ(ЕТЕКСТ(B9);", "&B9;"")&ЕСЛИ(ЕТЕКСТ(B10);", "&B10;"")&ЕСЛИ(ЕТЕКСТ(B11);", "&B11;"")
а в 365 просто:
=ОБЪЕДИНИТЬ(", ";1;B2:B11)
Изменено: buchlotnik - 22.10.2019 17:24:43
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
до кучи изврат:
Чего в пробирке то, дай нюхнуть :-)
По вопросам из тем форума, личку не читаю.
 
А если в #4 ячейка B2 пустая?
Владимир
 
Ну знаете ли, если и первого собственника нет, то что мы вообще сцепляем?
Цитата
БМВ написал:
дай нюхнуть :-)
кто ж с пробирки нюхает... эх
Изменено: buchlotnik - 22.10.2019 17:51:07
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
кто ж с пробирки нюхает... эх
так это, я ж содержимое прошу на тестирование, а емкость неважна. Ну не лапой же махать над горлышком.
По вопросам из тем форума, личку не читаю.
 
Кстати, детская задача по теме. Переменная txt в VBA состоит из букв, цифр, знаков препинания. Написать выражение на VBA, не использующее функции рабочего листа, объекты Excel, функцию Split, которое несколько подряд идущих запятых заменяет на одну.
Владимир
 
Владимир, ну хоть что-нить можно использовать? :-)
Код
   Do While InStr(text, ",,") :   text = Replace(text, ",,", ",") :  Loop
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал: хоть что-нить можно использовать?
Блокот и... шариковую ручку :)
 
Ещё варианты:
Код
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЦЕПИТЬ(" ";B2;", ";B3;", ";B4;", ";B5;", ";B6;", ";B7;", ";B8;", ";B9;", ";B10;", ";B11);" ,";);",";;СЧЁТЗ(B2:B11)))
Код
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(" "&B2&", "&B3&", "&B4&", "&B5&", "&B6&", "&B7&", "&B8&", "&B9&", "&B10&", "&B11;" ,";);",";;СЧЁТЗ(B2:B11)))
Код
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(" "&ПОДСТАВИТЬ(B2&0&B3&0&B4&0&B5&0&B6&0&B7&0&B8&0&B9&0&B10&0&B11;0;", ");" ,";);",";;СЧЁТЗ(B2:B11)))
 
serpan, Поищите СЦЕПИТЬЕСЛИ, это достаточно популярная тема
 
serpan,
Вот еще статьи по теме вопроса:
Склеивание текста по условию
Зачистка текста
3 способа склеить текст из нескольких ячеек

Почаще заглядывайте в ПРИЁМЫ - это интересно :)
 
Цитата
БМВ написал:
ну хоть что-нить можно использовать
Я имел в виду вариации на тему #2:

Код
Replace(Replace(Replace(txt, ",", "," & vbTab), vbTab & ",", ""), vbTab, "")

Вместо vbTab можно использовать любой символ, отсутствующий в тексте.
Этот трюк полезен и в других ситуациях - например, можно в Oracle SQL эффективно заменять последовательность нескольких пробелов на один.
Владимир
Страницы: 1
Наверх