比方說,我有一系列的細胞像這樣:追加字符串
A
1 Foo
2 Bar
3 Hello
4 World
5 Random Text
我希望做的是有我的公式的結果填充另一個細胞有:
Foo, Bar, Hello, World, Random Text
現在,我知道如何連接兩個小區:
=A1&", "&A2
,但我該怎麼做同樣的事情,與整個系列?
比方說,我有一系列的細胞像這樣:追加字符串
A
1 Foo
2 Bar
3 Hello
4 World
5 Random Text
我希望做的是有我的公式的結果填充另一個細胞有:
Foo, Bar, Hello, World, Random Text
現在,我知道如何連接兩個小區:
=A1&", "&A2
,但我該怎麼做同樣的事情,與整個系列?
以下是您可以使用的功能。簡單地說這個工作簿代碼模塊中,那麼你可以在樣細胞輸入:
=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
這正是我需要的,謝謝! –
+1非常好的答案。 –
@HeadofCatering好趕上!謝謝 :) –
加上一個逗號,並在B1單元格的空間,然後使用這個公式:
=CONCATENATE(A1,B1,A2,B1,A3,B1,A4, B1, A5)
有幾個回答以下問題,你可以嘗試爲好,包括VBA選項和一個公式:
隨着=A1
在B1然後=B1&", "&A2
在B2和抄下來,似乎工作。
我認爲你不能真正做到這一點有一個公式,雖然我可能被誤認爲。這在VBA的'For/Next'循環中是一個相當簡單的實現。 –
我無法找到一種方法來做到這一點與內置的公式,你可以做一個自定義的公式,以大衛的建議做到這一點 – chancea
由於'CONCATENATE'不能處理一個數組拼接在一起,你留下一個醜陋的公式或VBA解決方案 – brettdj