2013-10-01 3 views
0

Я искал решение этой проблемы, но я не мог найти решение, которое меня удовлетворило. Итак, вот что: в excel у меня есть одна строка с неопределенным количеством значений (может быть 30, может быть 40, никто не знает). Я хочу объединить все эти значения в одной ячейке, разделенной запятыми (строка). Как я могу сделать это с помощью итераций? более одно: если поле пусто, то цикл должен закончиться (в конце списка значений)excel объединяет значения в одной строке с разделенной запятой строкой

Heres некоторые примеры данных:

ROW A: 
---- 
a 
b 
c 
d 
e 
f 
g 

Результат:

a,b,c,d,e,f,g 

Благодаря

+0

Вы ищете VBA, да? – Jerry

+0

нет нет точно. было бы неплохо, если бы я мог сделать это с помощью формулы – user2695707

+0

Ваш образец столбчатый, и вы называете его 'A' - вы уверены, что они рядом с (влево/вправо) друг с другом, а не друг с другом (вверх/вниз) ? – pnuts

ответ

2

Рассмотрим следующие пользовательские функции (UDF):

Public Function conkittenate(rIn As Range) As String 
    Dim r As Range 
    conkittenate = "" 
    For Each r In rIn 
     If r.Value <> "" Then 
      If conkittenate = "" Then 
       conkittenate = r.Text 
      Else 
       conkittenate = conkittenate & ", " & r.Text 
      End If 
     End If 
    Next 
End Function 

На листе, он может быть использован как:

= conkittenate (A1: H1)

или

= conkittenate (A1: A5)

Смежные вопросы