有没有办法在 Excel 中创建 =CONCATENATIFS()

有没有办法在 Excel 中创建 =CONCATENATIFS()

我有一张如下表:

银行 信用
朱利叶斯 汇丰银行 1000
朱利叶斯 蟒蛇 200
马库斯 汇丰银行 500
马库斯 加拿大银行 400
凯莉 蟒蛇 800

我想将其转换为这样的表格:

银行 信用
朱利叶斯 汇丰银行、美国银行 1200
马库斯 汇丰银行、中行 900
凯莉 蟒蛇 800

对于列信用,我使用如下公式=SUMIFS(C:C;A:A;A2)

但是我能不能有办法把它变成银行专栏?=CONCATENATEIFS(B:B;A:A;A2)

附加问题:有没有办法添加像,我例子中那样的分隔符?

答案1

我建议您使用TEXTJOIN

假设您的表格位于 A 列至 C 列,查找值位于 E 列至 G 列,请使用以下公式:

=TEXTJOIN(",",TRUE,IF($A$2:$A$6=$E10,$B$2:$B$6,""))

将公式拖至其他单元格。

使用 TEXTJOIN 和 IF 函数连接的结果

答案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)

在此处输入图片描述

相关内容