我有一张如下表:
人 | 银行 | 信用 |
---|---|---|
朱利叶斯 | 汇丰银行 | 1000 |
朱利叶斯 | 蟒蛇 | 200 |
马库斯 | 汇丰银行 | 500 |
马库斯 | 加拿大银行 | 400 |
凯莉 | 蟒蛇 | 800 |
我想将其转换为这样的表格:
人 | 银行 | 信用 |
---|---|---|
朱利叶斯 | 汇丰银行、美国银行 | 1200 |
马库斯 | 汇丰银行、中行 | 900 |
凯莉 | 蟒蛇 | 800 |
对于列信用,我使用如下公式=SUMIFS(C:C;A:A;A2)
但是我能不能有办法把它变成银行专栏?=CONCATENATEIFS(B:B;A:A;A2)
附加问题:有没有办法添加像,
我例子中那样的分隔符?
答案1
答案2
Public Function contxt(ParamArray args() As Variant) As Variant
Dim tmptext As Variant, i As Variant, Cellv As Variant
Dim Cell As Range
tmptext = ""
For i = 0 To UBound(args)
If Not IsMissing(args(i)) Then
Select Case TypeName(args(i))
Case "Range"
For Each Cell In args(i)
tmptext = tmptext & Cell
Next Cell
Case "Variant()"
For Each Cellv In args(i)
tmptext = tmptext & Cellv
Next Cellv
Case Else
tmptext = tmptext & args(i)
End Select
End If
Next i
tmptext = Mid(tmptext, 1, Len(tmptext) - 1)
contxt = tmptext
End Function
创建自定义函数并输入公式:
=CONTXT((IF($A$2:$A$6=F2,$B$2:$B$6&",","")))
=SUMIF($A$2:$A$6,F2,$C$2:$C$6)