如何根据已知单元格返回Excel行和列标题值?

时间:2017-04-08 05:27:30

标签: excel excel-formula

我在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))

我需要的是能够在不对行信息进行硬编码的情况下找到这些值。

1 个答案:

答案 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)))

enter image description here