选择C1:C16单元格,输入以下公式,按Ctrl+Enter组合键结束
=A1&IF(COUNTIF(B2:B$17,B1)>0,INDEX(C2:C$17,MATCH(B1,B2:B$17,0)),"")
然后在D1:D16单元格输入以下公式,按Ctrl+Enter组合键结束
=VLOOKUP(B1,B:C,2,0)
隐藏C列,即可。
详见附图
下面的代码能完成你的功能:
Option Explicit
Sub YgB()
Dim arr, i, db, k, v
'第一步,搜集信息
Set db = CreateObject("Scripting.Dictionary")
arr = Cells(1, 1).CurrentRegion
For i = 1 To UBound(arr)
k = arr(i, 2)
v = arr(i, 1)
If Not db.Exists(k) Then db.Add k, CreateObject("Scripting.Dictionary")
db(k)(v) = True
Next i
'第二步,显示结果
For i = 1 To UBound(arr)
k = arr(i, 2)
v = Join(db(k).Keys, "")
Cells(i, 3) = v
Next i
End Sub
执行拷屏如下:
你用数据透视要简单些,筛选出B列计数大于1的就行了
晚上再来看看。