Добавить текст диапазона ячеек в одну ячейку в Excel - PullRequest
4 голосов
/ 17 ноября 2011

Я хочу объединить диапазон ячеек в одну ячейку без макросов / vbscript.

Формула CONCATENATE() получает отдельные ячейки.

Ответы [ 2 ]

4 голосов
/ 17 ноября 2011

Это не так просто, но я получаю решение, которое творит чудеса!

A1: текст для поиска

B1:BN: диапазон в результатах будет

B5: Текст разделителя

=MID($A$1,LEN(CONCAT($B$1:B1))+COUNTA($B$1:B1)*LEN($B$5)+1,
    SEARCH(
        $B$5,
        $A$1,
        LEN(
           CONCAT($B$1:B1)) + COUNTA($B$1:B1)*LEN($B$5)+1)
           -(LEN(CONCAT($B$1:B1))+COUNTA($B$1:B1)*LEN($B$5)+1))

На данный момент он работает идеально.Обратите внимание, что вы можете использовать любой текст в качестве разделителя.В моем случае это была «запятая + пробел».

Где Concat - простая функция, объединяющая диапазон ячеек:

Function Concat(myRange As Range) As String
  Dim r As Range
  Application.Volatile
  For Each r In myRange
    If Len(r.Text) Then
      Concat = Concat & IIf(Concat <> "", "", "") & r.Text
    End If
  Next
End Function
1 голос
/ 17 ноября 2011

Вы можете использовать CONCATENATE() или &, чтобы присоединиться к ячейкам. Там нет диапазона, который вы можете захватить все сразу, если вы не используете UDF, такие как MCONCAT.

...