![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 18.08.2009
Сообщений: 59
|
![]()
Вопрос!
В листе 1 есть столбец с фиксированным диапазоном в 59 ячеек, в этом столбце есть заполненные ячейки и пустые, как сделать так чтобы формула склеивала значения через запятую ячеек с данными, а пустые ячейки игнорировались Спасибо. Последний раз редактировалось Alex___; 21.01.2013 в 18:36. |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 09.02.2011
Сообщений: 1
|
![]()
Могу посоветовать пользовательскую функцию, чтобы убрать дублирующие ", ," по пустым ячейкам используйте функцию =ПОДСТАВИТЬ(СЦЕПИТЬВСЕ(A6:A10);", ,";",")
Макрос: Function СЦЕПИТЬВСЕ(Диапазон As Range, Optional Разделитель As String = ", ") tmp = Application.Transpose(Диапазон) СЦЕПИТЬВСЕ = Join(tmp, Разделитель) End Function Либо используйте макрос с условием, у меня потребовался доп.столбце для определения, что ячейка не пуста: Function ConcatIf(ByVal compareRange As Range, ByVal xCriteria As Variant, _ Optional ByVal stringsRange As Range, Optional Delimiter As String) As String Dim i As Long, j As Long, criteriaMet As Boolean Set compareRange = Application.Intersect(compareRange, _ compareRange.Parent.UsedRange) If compareRange Is Nothing Then Exit Function If stringsRange Is Nothing Then Set stringsRange = compareRange Set stringsRange = compareRange.Offset(stringsRange.Ro w - compareRange.Row, _ stringsRange.Column - compareRange.Column) For i = 1 To compareRange.Rows.Count For j = 1 To compareRange.Columns.Count If (Application.CountIf(compareRange.C ells(i, j), xCriteria) = 1) Then ConcatIf = ConcatIf & Delimiter & CStr(stringsRange.Cells(i, j)) End If Next j Next i ConcatIf = Mid(ConcatIf, Len(Delimiter) + 1) End Function .. Упоминалось здесь http://www.programmersforum.ru/showthread.php?t=66389 |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 15.12.2009
Сообщений: 1,448
|
![]()
Ещё пара функций
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru https://yoomoney.ru: 41001419691823 |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 18.08.2009
Сообщений: 59
|
![]()
Спасибо за ответы, но я чайник в этом и единственное, что я смог это скопировать формулу но она пишет ИМЯ? ....в макрос подставить диапазон не знаю куда ..... в моем случае диапазон такой: 'Y '!I10:I59 не подскажете как тогда будет выглядет макрос? или формула с моими значениями?
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]()
на сайте автора функции СцепитьЕсли, ниже самого кода функции, описано как и что со всем этим делать.
Почитайте
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
![]()
Можно и формулами листа, но с использованием доп. столбца. Этот столбец можно скрыть и сделать ссылку на верхнюю ячейку столбца:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Последний раз редактировалось Казанский; 21.01.2013 в 23:56. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
StringList. Вывод списка через запятую(знак , ) | Человек_Борща | Общие вопросы Delphi | 7 | 25.05.2012 16:50 |
Дублирование ячеек, диапазона ячеек на новом листе | ukrman | Microsoft Office Excel | 2 | 03.02.2012 01:06 |
Как добавить сразу несколько ячеек к каждой ячейке некоего диапазона? | eugenerud | Microsoft Office Excel | 20 | 24.07.2009 19:18 |
как сцепить несколько ячеек чтобы сохранилось выделение цветом или жирным шрифтом | gribkow | Microsoft Office Excel | 7 | 23.04.2008 09:27 |