2016-09-19 33 views
1

我試圖在某些單元格爲空白時將行中單元格的文本串起來。我也想用逗號分隔每個單元格中的文本,但不知道如何在單元格中存在數據時只輸入逗號。帶空白單元格的字符串文本

我已經嘗試使用連接的變體並使用文本串A1 & B1 & C1但沒有任何內容以我想要的格式返回數據。

是否有嵌套公式的組合我可以使用它將以我想要的格式返回數據?

+0

您使用的是什麼版本的Excel?在2016年,您可以['TextJoin()'](https://support.office.com/en-us/article/TEXTJOIN-function-357b449a-ec91-49d0-80c3-0e8fc845691c):'= TEXTJOIN(「 ,「,TRUE,[range])' – BruceWayne

+0

我正在使用Excel 2013,因此textjoin公式不適用於我。 –

回答

0

下面的公式可以做到這一點。連接val修剪將從兩端刪除空格,並且替換將交換逗號(空格)的空間。

= SUBSTITUTE(TRIM(A1 & 「」 & B1 & 「」 & C1 & 「」 & D1) 「」, 「」)從下面的評論

編輯 - 你可以更新之間的空間引號是任何不出現在單元格中的字符。你只需要替代公式來匹配。如果你不使用|字符,例如:

= SUBSTITUTE(TRIM(A1 & 「|」 & B1 & 「|」 & C1 & 「|」 & D1), 「|」, 「」)

+0

我試過這個公式,但我的一些數據每個單元有多個單詞,這個公式在每個單元格內有空格的地方插入逗號。任何修補程序? –

+0

除了「&」之間的「」之外,您可以使用任何不出現在文本中的字符 - 只需替換空格即可。同時替換倒數第二段的空格。例如,如果您不使用任何\或*字符,則您的公式可能如下所示: = SUBSTITUTE(TRIM(A1&「\」&B1&「\」&C1&「\」&D1), 「」,「」,「) 或 = SUBSTITUTE(TRIM(A1&」*「&B1&」*「&C1&」*「&D1),」*「,」,「) – BamAlmighty

0

這裏的一個VBA溶液我有更新的版本:

Public Function JOINCELLS(ByVal ref As Range) As String 
Dim c  As Range 
For Each c In ref 
    If Len(c) > 0 Then 
     JOINCELLS = JOINCELLS & c & ", " 
    End If 
Next 
JOINCELLS = Left(JOINCELLS, Len(JOINCELLS) - 2) 
End Function 

然後,它只是=JOINCELLS(A1:D1)