Страницы: 1
RSS
Электронные адреса из столбика перенести в одну ячейку и разделить запятой
 
Добрый день, помогите справиться с задачей. Необходимо Электронные адреса из столбика перенести в одну ячейку и разделить запятой.

Пример в файле. Естественно в столбике более 100 адресов.
 
Добрый вечер.
Код
=ОБЪЕДИНИТЬ(",";ИСТИНА;A1:A3)
Либо использовать UDF (функцию на языке VBA). Например такую:
Код
Public Function ОБЪЕДИНЕНИЕ(delim As String, ParamArray rng() As Variant)
Dim cll1 As Variant, cll2 As Variant
Dim Res As String
For Each cll1 In rng
For Each cll2 In cll1
Код нашел на Яндексе, первый линк.
Изменено: Lefevr - 09.04.2019 20:37:06
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
Lefevr, функция там целиком такая:
Код
Public Function ОБЪЕДИНЕНИЕ(delim As String, ParamArray rng() As Variant)
Dim cll1 As Variant, cll2 As Variant
Dim Res As String
For Each cll1 In rng
For Each cll2 In cll1
If cll2 <> "" Then Res = Res & cll2 & delim
Next cll2
Next cll1
ОБЪЕДИНЕНИЕ = Left(Res, Len(Res) - Len(delim))
End Function

И кстати что немаловажно - первая строка того поста звучит так:
Цитата
Если используете Excel 2019 или Office 365, то можно функцией ОБЪЕДИНИТЬ.
Изменено: Hugo - 09.04.2019 20:51:34
 
Hugo,зачем же всё настолько разжевывать пользователю? Не оставляете поля для размышлений.
Тогда по формуле ещё необходимо указать ограничение:

Если объединенная строка содержит более 32767 символов (ограничение для ячейки), функция ОБЪЕДИНИТЬ вернет ошибку #ЗНАЧ!.
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
Hugo, спамеров размножаем?
 
Во- первых не спамеров. А были на выставке и клиенты сами зарегистрировались у нас и попросили выслать им прайсы.

Помогите пробовал в офисе 365 - выдает ошибку, что не так?:
Изменено: stalker138013 - 10.04.2019 20:22:31
 
в PQ
 
Спасибо огромное artyrH. А можно в Вашем примере сделать так, чтобы не только три значения, а весь столбик через запятую делался. Я просто хотел на работе в Ваш пример в столбик подставить нужные мне значения.

Пытался одно подставить, а новое значение не сработало?
 
Это делается 1 строкой кода
Код
Sub qq()
[B1] = Join(Application.Transpose(Selection.Value), ",")
End Sub

Выделить нужное, запустить. Все, что в ячейку не влезло, тихо обрежется.
 
Зачем мудрить и пытаться все в одну формулу, особенно при разовой задаче?
B1 и протянуть =A1&","&B2 по идее в В1 уже будет список нужный, но если мешает запятая в концке то
=TRIM(SUBSTITUTE(B1&" ";", ";"")) в с2
Изменено: БМВ - 10.04.2019 21:18:34
По вопросам из тем форума, личку не читаю.
 
Уважаемый RAM вставь пожалуйста этот код в файл примера. Спасибо. Просто я не разбираюсь в макросах. У БМВ я вообще ничего не понял в файле. Извиняюсь.
Изменено: stalker138013 - 10.04.2019 21:32:45
 
Цитата
stalker138013 написал:
Уважаемый RAM
Мама мыла RAMу  :D
По вопросам из тем форума, личку не читаю.
 
Цитата
stalker138013 написал:
весь столбик
на вкладке Данные нажмите обновить все
 
Нажал, выдает ошибку:
 
stalker138013, почему не работает не знаю. здесь обсуждали. на работе попробуйте. у меня excel 2010 - работает.
у вас какой excel? ранее говорили что 365, а на  последнем скрине непохоже. нужно excel 2010или2013 + Power Query или excel 2016
 
Цитата
stalker138013 написал:
У БМВ я вообще ничего не понял
добавьте адреса в столбец  A:A и протяните формулу в ячейке В3. в ячейке С2 будет результат  
 
Пробовал на работе и в 365 офисе. Ошибка. Вы не могли бы в свой пример вставить формулу, чтобы все значения из столбика переносились в ячейку через запятую?

Огромное спасибо.
 
что у вас за excel? на  скрине показан какой нужен excel. мой вариант не будет у вас работать.
в файле пример от БМВ. удалите формулы из диапазона b8:b21. посмотрите результат. то есть формулу нужно протянуть на такой же длины диапазон что и диапазон с адресами
Страницы: 1
Наверх