2

比方說,我有一系列的細胞像這樣:追加字符串

A 
1 Foo 
2 Bar 
3 Hello 
4 World 
5 Random Text 

我希望做的是有我的公式的結果填充另一個細胞有:

Foo, Bar, Hello, World, Random Text 

現在,我知道如何連接兩個小區:

=A1&", "&A2 

,但我該怎麼做同樣的事情,與整個系列?

+1

我認爲你不能真正做到這一點有一個公式,雖然我可能被誤認爲。這在VBA的'For/Next'循環中是一個相當簡單的實現。 –

+0

我無法找到一種方法來做到這一點與內置的公式,你可以做一個自定義的公式,以大衛的建議做到這一點 – chancea

+0

由於'CONCATENATE'不能處理一個數組拼接在一起,你留下一個醜陋的公式或VBA解決方案 – brettdj

回答

1

以下是您可以使用的功能。簡單地說這個工作簿代碼模塊中,那麼你可以在樣細胞輸入:

=JoinRange(A1:A6)=JoinRange(A2:D15)

Public Function JoinRange(ByVal rng As Range) As String 
    Dim dlmt As String: dlmt = "," 
    Dim multiRow As Boolean: multiRow = rng.Rows.Count > 1 
    Dim r As Long, c As Long 

    Select Case rng.Columns.Count 
     Case 1 
      If multiRow Then 
       JoinRange = Join(Application.WorksheetFunction.Transpose(rng), dlmt) 
      Else: 
       'a single cell 
       JoinRange = rng 
      End If 
     Case Is > 1 
      If multiRow Then 
       'a 2d range of cells: 
       For r = 1 To rng.Rows.Count 
        For c = 1 To rng.Columns.Count 
         JoinRange = JoinRange & rng(r, c) & dlmt 
        Next 
       Next 
       JoinRange = Left(JoinRange, Len(JoinRange) - 1) 

      Else: 
       JoinRange = Join(Application.WorksheetFunction.Transpose(_ 
           Application.WorksheetFunction.Transpose(rng)), dlmt) 
      End If 
     Case Else 

    End Select 

End Function 
+0

這正是我需要的,謝謝! –

+0

+1非常好的答案。 –

+0

@HeadofCatering好趕上!謝謝 :) –

1

加上一個逗號,並在B1單元格的空間,然後使用這個公式:

=CONCATENATE(A1,B1,A2,B1,A3,B1,A4, B1, A5) 

有幾個回答以下問題,你可以嘗試爲好,包括VBA選項和一個公式:

Need to concatenate varying number of cells...

+1

我認爲他不想要硬編碼每個單元格在公式 – chancea

+0

你可能是對的。如果他沒有幫助,我會刪除我的答案。 –

+1

是的,好主意,但效率不如我想... –

1

隨着=A1在B1然後=B1&", "&A2在B2和抄下來,似乎工作。