答案1
您也可以使用这个简单制作的 UDF。
要存储它,右键单击“工作表”选项卡,单击“查看代码”,然后将该代码作为模块插入。
Function ConcatenateIf(CriteriaRange As range, Condition As Variant, ConcatenateRange As range, Optional Separator As String = ",") As Variant
Dim xResult As String
On Error Resume Next
If CriteriaRange.count <> ConcatenateRange.count Then
ConcatenateIf = CVErr(xlErrRef)
Exit Function
End If
For I = 1 To CriteriaRange.count
If CriteriaRange.Cells(I).Value = Condition Then
xResult = xResult & Separator & ConcatenateRange.Cells(I).Value
End If
Next I
If xResult <> "" Then
xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function
注意:最后在单元格 B2 中写入此公式。
=ConcatenateIf(C2:C16,C2,A2:A16)
答案2
您将此公式写入蓝色列。我假设是 B 列。
所以 B2 中的公式
=IF(C2<>C1,CONCATENATE(A2,", ",B2,),"")
将其拖到最后一行。使用您的数据,您将获得代码集每一行最后一行的组合值。
首先进入第 6 行,然后是第 7 至第 9 行,最后是第 14 行。
希望这对你有帮助。