excel中怎么实现查找一组数中最的值,并提取最大值所在列第一行数据。

如下图,B2:E2最大值是4,分别在D2 E2单元格内,要提取这两个单元格所在的第一列(D1 E1)的数据(累3 累4),下面每一行也是如此。
也就是要查找同一行4个数据中的最大值,然后定位到最大值所在的列,并提取该列第一行的数据。

你的最大值有2个相同的,不能识别啊。给你提供一个公式,此公式只能用于最大值不能有2个,最大值只能有一个唯一值:=INDEX($B$1:$E$1,MATCH(MAX(B2:E2),B2:E2,0))
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-15

在函数公式不能处理的情况下,不妨试着使用VBA程序来处理,其程序代码如下:

Sub GetMax()
Dim i, j, k1, k2
Set mysheet1 = ThisWorkbook.Worksheets("Sheet1")
mysheet1.Range("A1:A1000") = ""

For i = 2 To 1000
  k1 = Application.WorksheetFunction.Max(mysheet1.Range(mysheet1.Cells(i, 2), mysheet1.Cells(i, 5)))           '获取最大值
  k2 = Application.WorksheetFunction.CountIf(mysheet1.Range(mysheet1.Cells(i, 2), mysheet1.Cells(i, 5)), "")   '统计空白单元格数量

  If k2 = 0 Then   '如果空白单元格数为零,则

   For j = 2 To 5   '从第二列到第五列
    If mysheet1.Cells(i, j) = k1 And mysheet1.Cells(i, 1) <> "" Then            '与最大值相同且单元格不为空白
     mysheet1.Cells(i, 1) = mysheet1.Cells(i, 1) & "," & mysheet1.Cells(1, j)    '把对应单元格的值填入此单元格并加逗号间隔
    End If

    If mysheet1.Cells(i, j) = k1 And mysheet1.Cells(i, 1) = "" Then
     mysheet1.Cells(i, 1) = mysheet1.Cells(1, j)
     End If

   Next
  End If

Next

End Sub

VBA程序代码截图如下:

VBA程序的运行结果如下:

相似回答