执行search并获得所有的匹配

让我们举这个例子,问题是:“安妮有多less次科学评论”? (回答: 2次)

  ABCD 1 Name Gender Subject Commentary 2 Anne Female Maths 3 Anne Female English 4 Anne Female Science whatever... 5 Anne Female Maths 6 Anne Female English 7 Anne Female Science blah, blah 8 Kath Female Maths 9 Kath Female English 10 Kath Female Science 11 Tony Male Maths etc... 12 Tony Male English 13 Tony Male Science blah, blah 

我用COUNTIFS解决了它:

 =COUNTIFS(Sheet1!A1:A13,"Anne",D1:D13,"*") 

但现在我需要search所有Anne + Science评论,并将它们连接在一个结果单元格中,这样:“不pipe…. blah,blah”。

怎么办?
如果没有办法使用公式,如何使用VBA?

 Public Function Commentary(rSource As Range, sName As String, sSubject As String) As String Dim vaSource As Variant Dim i As Long Dim lCnt As Long Dim aOutput() As String vaSource = rSource.Value For i = LBound(vaSource, 1) To UBound(vaSource, 1) If vaSource(i, 1) Like sName And vaSource(i, 3) Like sSubject Then lCnt = lCnt + 1 ReDim Preserve aOutput(1 To lCnt) aOutput(lCnt) = vaSource(i, 4) End If Next i Commentary = Join(aOutput, "|") End Function 

使用像

 =Commentary(A1:D13,"Anne","Science") 

您可以使用数据透视表并连接结果,如下所示:

SO19503989的例子

编辑

我应该解释一下,如果有很多条目,在I7中使用=I6&", "&F7 ,下来select最后一个。