![在 Excel 中连接单元格但排除空单元格](https://linux22.com/image/1452010/%E5%9C%A8%20Excel%20%E4%B8%AD%E8%BF%9E%E6%8E%A5%E5%8D%95%E5%85%83%E6%A0%BC%E4%BD%86%E6%8E%92%E9%99%A4%E7%A9%BA%E5%8D%95%E5%85%83%E6%A0%BC.png)
我想知道如何连接一行用逗号分隔的单元格但排除空单元格。
例如,列表如下:
A1——狗
B1——“空单元格”
C1——猫
我正在寻找一个可以返回 ---> Dog, Cat 的公式
非常感谢您的帮助!
答案1
可能值为A1、B1和C1, 在D1进入:
=IF(A1="","",A1)&IF(B1="","",IF(A1<>"",", "&B1,B1))&IF(C1="","",IF(AND(A1="",B1=""),C1,", "&C1))
这样可以避免使用空格,同时也避免使用不必要的逗号。
答案2
Excel 没有任何内置函数可以做到这一点,有一些变通方法最终会得到我不太喜欢的硬编码值。
或者你可以使用用户定义的函数
Function comb_cells(r As Range, Optional delim As String = " ") As String
For Each c In r
If IsEmpty(c.Value) Then
Else
If Len(comb_cells) = 0 Then
comb_cells = c.Value
Else
comb_cells = comb_cells & delim & c.Value
End If
End If
Next
End Function
那么公式就是
=comb_cells(A1:C1,", ")
不幸的是,用户定义的函数可能会很麻烦,因为它们无法在该工作簿之外或在其他计算机上工作(取决于保存位置),但我仍然认为这是最好的选择。
此函数的范围包括行和列,每个命令应按照您阅读的方式循环(从左到右、下一行、从左到右等)。