我有一个这样的数据表:
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),)
无效:(
答案 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)
希望这个附带的截图是自解释的吗?
答案 3 :(得分:0)
好的,我会像这样编程一个宏: 迭代每一行 - 找到该行的最大值。 将值存储在数组中,然后再次计算最大值。
可能它也适用于公式。只需计算单独列中每行的最大值,然后计算该列的最大值。
答案 4 :(得分:0)
试试这个数组公式
=MIN(IF(A1:H4=MAX(A1:H4),ROW(A1:H4)))
通过CTRL+SHIFT+ENTER
如果A1:H4中出现多次MAX值,那么公式将为您提供第一个行。