在excel表格中,我们有时需要合并多个单元格的内容到指定的单元格中。如图,比方说需要把每个人购买的水果合并到一个单元格内。每个水果用“,”隔开。
1508142478371364.png
Excel中有自带函数CONCATENATE,它可以将多个文本字符串合并成一个文本字符串,但它不能指定条件合并某些单元格的内容到一个单元格,这时CONCATENATE函数无法实现。
自定义函数:FunctionCONCATENATEIF(rng1AsRange,rng2AsRange,criteriaAsString,separatorAsString)AsString
Dimarr()
DimrCellAsRange
DimiAsInteger,jAsInteger
OnErrorResumeNext
j=WorksheetFunction.CountIf(rng2,criteria)
Ifj>0Then
ReDimarr(0Toj-1)
ForEachrCellInrng2
IfWorksheetFunction.CountIf(rCell,criteria)Then
arr(i)=rng1.Item(1).Offset(rCell.Row-rng2.Row,rCell.Column-rng2.Column).Value
i=i+1
EndIf
Next
Fori=0Toj-1
CONCATENATEIF=CONCATENATEIF&arr(i)&IIf(ij-1,separator,"")
Next
EndIf
EndFunction
此自定义函数CONCATENATEIF有四个参数,分别是①需要连接单元格内容的区域(通常为单行或单列)、②条件区域,③条件,④分隔符。注意:函数可以使用“*“,”?”等通配符.
在单元格中录入函数,填写相关的参数即可:=CONCATENATEIF(C2:C14,B2:B14,F2,",")效果如下图:
1508142653134069.png
|