Excel - 以二维方式查找值

时间:2013-02-18 15:32:51

标签: excel

我有一个这样的数据表:

     a    b    c    d
1    1    2    3    4
2    5    6    7    8
3    9    10   11   12
4    13   14   15   16

我想要一个找到最大值(16)并返回其行号(在这种情况下为4)的公式。我该怎么做?

INDEX(a1:d1,MATCH(MAX(a1:h4),a1:h4,0),)无效:(

5 个答案:

答案 0 :(得分:2)

表格布局:
B1:E1:列标题
A2: A5:行标题
B2:E5:数据

数组公式:

{MAX(IF(B2:E5=MAX(B2:E5);ROW(B2:E5)-1;""}

由于最初询问“d”的问题,相应的数组公式如下:

{=OFFSET(A1;MAX(IF(B2:E5=MAX(B2:E5);ROW(B2:E5)-1;""));0)}

按住Shift键,在公式窗口中输入以插入。卷曲括号由Excel插入,而不是由用户插入。

答案 1 :(得分:2)

还有一个不起眼的女孩的意见:

=ADDRESS(ROW(OFFSET(A1,MAX(IF(B2:E5=MAX(B2:E5),ROW(B2:E5)-1,"")),0)),COLUMN(OFFSET(A1,0,MAX(IF(B2:E5=MAX(B2:E5),COLUMN(B2:E5)-1,"")))),4) - 但是通过Ctrl+Shift+Enter输入 ARRAY 公式,将返回E5(假设为@Jüri Ruut个区域),这只是地址期望的细胞。

答案 2 :(得分:1)

希望这个附带的截图是自解释的吗?

enter image description here

答案 3 :(得分:0)

好的,我会像这样编程一个宏: 迭代每一行 - 找到该行的最大值。 将值存储在数组中,然后再次计算最大值。

可能它也适用于公式。只需计算单独列中每行的最大值,然后计算该列的最大值。

答案 4 :(得分:0)

试试这个数组公式

=MIN(IF(A1:H4=MAX(A1:H4),ROW(A1:H4)))

通过CTRL+SHIFT+ENTER

确认

如果A1:H4中出现多次MAX值,那么公式将为您提供第一个行。