如下图,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程序的运行结果如下: