2017-06-16 37 views
0

查看本頁面上的示例https://www.extendoffice.com/documents/excel/3269-excel-concatenate-cells-if-not-empty.html(如下所示)。在Excel中忽略空格的不確定數量的細胞

如果最後一項爲空,此解決方案不起作用。例如,在A列中,如果A5中缺少「Order」,則結果將是「KTE-2015-Ruby-」,而不是「KTE-2015-Ruby」。

我該如何去獲得第二個結果,而沒有一堆if語句來檢查該單元格是否是最後一個不是空白的。

有關更多信息,我將始終檢查相同數量的行以獲取信息,但實際上具有文本的行數是不確定的。再次以圖片爲例,我總是隻檢查1-5行,但我不知道哪些行是空白的。

enter image description here

回答

1

如果您有Office 365 Excel中那麼你可以使用TEXTJOIN():

=TEXTJOIN("-",TRUE,A1:A5) 

如果沒有,那麼你需要添加到配方,除去使用留下的最後一個字符()

=LEFT(A1 & "-" & IF(A2<>"",A2 & "-","") & IF(A3<>"",A3 & "-","") & IF(A4<>"",A4 & "-","") & IF(A5<>"",A5 & "-",""),LEN(A1 & "-" & IF(A2<>"",A2 & "-","") & IF(A3<>"",A3 & "-","") & IF(A4<>"",A4 & "-","") & IF(A5<>"",A5 & "-",""))-1) 

該公式有點不同,因爲它總是添加-到最後。然後使用Left刪除最後的-。那麼不管是否空白,我們總是會在末尾需要刪除-


或者爲@Jeeped說:

=MID(IF(A1<>"","-" & A1,"") & IF(A2<>"","-" & A2,"") & IF(A3<>"","-" & A3,"") & IF(A4<>"","-" & A4,"") & IF(A5<>"","-" & A5,""),2, 999999) 
+0

完美的答案。我將不得不等待7分鐘來標記它。 – user7758051

+0

將分隔符添加到每個分隔符的前端會比較容易,然後用MID(...,2,9999999)將它們全部包裝起來? – Jeeped

+0

@很可能。 –

1

具有有限數量的可能的字符串來連接,也可以使用替代和TRIM,如果你沒有訪問TEXTJOIN。

=SUBSTITUTE(TRIM(A2&" "&B2&" "&C2), " ", "-") 

enter image description here