B列中多个最大值如何在一个单元格中返回它们对应的A列所有值?

如题所述

用如下VBA程序,可在D6单元格得到所求结果:
Sub maxstr()
Dim rag As Range
Dim maxb As Double
Dim a$
maxb = Application.WorksheetFunction.Max(Range("B1:B" & Range("B65536").End(xlUp).Row))
a$ = ""
For Each rag In Range("B1:B" & Range("B65536").End(xlUp).Row)
If rag.Value = maxb Then
If a$ = "" Then
a$ = rag.Offset(, -1).Value
Else
a$ = a$ & " " & rag.Offset(, -1).Value
End If
End If
Next
Range("D6").Value = a$
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-25
这个只能使用VBA实现。如果退而求其次,在C1输入
=INDEX(A$1:A$14,SMALL(IF(B$1:B$13=MAX(B$1:B$13),ROW($1:$13),14),COLUMN(A1)),)&""
按【CTRl+SHIFT+回车】后,向右拉填充公式,然后再在最后一列下一列输入
=c1&b1&d1&e1&f1本回答被网友采纳
第2个回答  2012-09-28
在C1输入=IF(MAX(B:B)=B1,A1,"")
往下填充公式
在D6输入=C1&C2&C3&C4&........
如果可以排序,你可以先按B列排序后,再按上面操作,那最后1个公式就简单