我在Excel中有一些表格数据,我使用MAX公式返回最高值。现在我需要编写几个公式,根据最高值返回相交行和列标题的值。
这是我sample worksheet里面的表格。
MaxValue = 106,547 RowValue = ?????
ColValue = ?????
ItemA ItemB ItemC ItemD ItemE ItemF
SiteA 784 3,357 - 77 8 54,789
SiteB 589 259 89 106,547 56 2,587
SiteC 635 678 - 9,963 - 26,993
SiteD 1,257 9 41 589 - 6,520
SiteE 87 3,688 476 46,719 7,899 369
表中包含的最高值为106,547。所以我希望公式为RowValue结果返回 ItemD ,为ColValue结果返回 SiteB 。
通常我会在VBA中看到这一点,但这种特殊方法需要在Excel中进行。我认为INDEX MATCH是正确的方法,因为我可以使用工作表中的以下公式获得正确的值(它们并不完全转换为我上面发布的表,但我还不能发布图像,抱歉)
RowValue = INDEX($B$4:$G$4,MATCH(C1,$B$6:$G$6,0))
ColValue = INDEX($A$5:$A$9,MATCH(C1,$E$5:$E$9,0))
我需要的是能够在不对行信息进行硬编码的情况下找到这些值。
答案 0 :(得分:2)
假设您的数据在A1:G6范围内,其中A2:A6包含网站标题,B1:G1包含项目标题和B2:G6范围内的数字,那么试试这个
获取网站标题:
在J2中
=INDEX(A2:A6,SUMPRODUCT((B2:G6=MAX(B2:G6))*(ROW(B2:B6)-ROW(B2)+1)))
获取Item标题:
在K2
=INDEX(B1:G1,SUMPRODUCT((B2:G6=MAX(B2:G6))*(COLUMN(B1:G1)-COLUMN(B1)+1)))
根据您的文件:
在F1中
=INDEX(A5:A9,SUMPRODUCT((B5:G9=C1)*(ROW(B5:B9)-ROW(B5)+1)))
在F2中
=INDEX(B4:G4,SUMPRODUCT((B5:G9=C1)*(COLUMN(B4:G4)-COLUMN(B4)+1)))