2011-11-03 30 views
1

我有一個Excel函數,它把我想要的,但這項工作大概可以收拾:整理一下Excel函數

=CELL("contents",E2) & (", ") & CELL("contents",F2) & (", ") & CELL("contents",G2)& (", ") & CELL("contents",H2) 

它吸引來自四個單元一排信息,並將每個間的逗號和空格一。

如何整理它?另外,如何在不改變單元格引用爲「E3,F3,G3,H3」,然後是「E4,F4,G4,H4」等的情況下,將公式全部寫入126。

+1

寫公式在一個單元格,然後將細胞拖動到鄰近的 - Excel將調整你的單元格的座標。 –

+1

沿着馬克的建議;請記住,如果您不想在拖動它時更改引用,請使用$ A $ 2(例如)。這將同時鎖定行和列。如果你只想鎖定一個,你可以做A $ 2或$ A2。 – hex4def6

+2

爲什麼你使用'CELL(「Contents」,'而不是隻是'= E2&「,」&F2&「,」&G2&「,」&H2'? –

回答

2

簡單:

=E2 & ", " & F2 & ", " & G2 & ", " & H2 

你也可以寫一個VBA函數來模擬.NET的string.join()函數,然後該公式將是

=JOIN(E2:H2) 

或許,這取決於如何編寫功能:

=JOIN(E2:H2, ", ") 

正如評論者所指出的,如果您複製並粘貼上述公式, Excel將調整單元格引用以保持與新位置的相對關係。

這裏是一個可能的實現JOIN的():

Public Function JOIN(rngValues As Range, strSeparator As String) As String 
    Dim rngCell As Range 

    For Each rngCell In rngValues 
     If Not IsEmpty(rngCell) Then 
      If Len(JOIN) Then 
       JOIN = JOIN & strSeparator 
      End If 
      JOIN = JOIN & rngCell 
     End If 
    Next 
End Function