Excel中的CONCATENATE函數(shù)可以將多個文本字符串聯(lián)接成一個文本字符串,但有時需要按指定條件合并某些單元格的內(nèi)容到一個單元格,這時CONCATENATE函數(shù)無法實(shí)現(xiàn),而使用下面的自定義函數(shù)就十分方便了。如圖所示,需要在F2單元格中將“調(diào)資額”為“190”的“姓名”用“、”連接起來。
步驟如下:
1.按Alt+F11,打開VBA編輯器,單擊菜單“插入→模塊”,在代碼窗口中輸入下列代碼:
Function CONCATENATEIF(rng1 As Range, rng2 As Range, criteria As String, separator As String) As String
Dim arr()
Dim rCell As Range
Dim i As Integer, j As Integer
On Error Resume Next
j = WorksheetFunction.CountIf(rng2, criteria)
If j > 0 Then
ReDim arr(0 To j – 1)
For Each rCell In rng2
If WorksheetFunction.CountIf(rCell, criteria) Then
arr(i) = rng1.Item(1).Offset(rCell.Row – rng2.Row, rCell.Column – rng2.Column).Value
i = i + 1
End If
Next
For i = 0 To j – 1
CONCATENATEIF = CONCATENATEIF & arr(i) & IIf(i <> j – 1, separator, "")
Next
End If
End Function
上述代碼定義了一個自定義函數(shù)CONCATENATEIF,共有四個參數(shù),分別為需要連接單元格內(nèi)容的區(qū)域(通常為單行或單列)、條件區(qū)域,條件和分隔符。使用該自定義函數(shù)時注意:
①參數(shù)中的兩個區(qū)域的形狀大小需相同;
②條件的輸入類似COUNTIF函數(shù),如 190、">100"、"蘋果" 等,可使用通配符“*”、“?”。
2.返回Excel工作表界面,在F2單元格中輸入公式:
=CONCATENATEIF($B$2:$B$16,$C$2:$C$16,E2,"、")
即可得到所需的結(jié)果。






