的窥视。
我目前有一个二维数据表,它测量两个输入的灵敏度,关于利润。
整个数据表是(D183:AI234
)。我从可以获得max()
值获得的最大利润,我想知道我可以创建什么公式,所以我可以在数据表(其中两个)中获得相应的值,从而产生由来自整个数据表的max()
。
我尝试过的事情:hlookup
,vlookup
从行和列获取输入,但从两者获得N / A.
例如,要根据look_up
值获取行的输入,我使用了以下公式:=HLOOKUP(E237,D183:AI234,1,0)
亲切的问候
数据表:
答案 0 :(得分:2)
这是使用数组函数执行此操作的一种hacky方法。我认为有一些更清洁的东西。
修改我误读了原来的问题。
我假设数据本身在D183:AI234范围内 - y类别的标签在C183:C234中,x类别的标签在D182:AI182中。
要查找最大值的行:MAX((D183:AI234 = MaxVal)*ROW(D183:D234))
使用行号,有多种选项可以实际访问y标签中的值:
OFFSET
(假设是
C182)。 OFFSET(C182, MAX((D183:AI234 = MaxVal)*ROW(D183:D234)) - ROW(C182), 0)
。 INDIRECT
和ADDRESS
访问带标签的单元格,行号以及标签的列标识符。 INDIRECT(ADDRESS(MAX((D183:AI234 = MaxVal)*ROW(D183:D234)), COLUMN(C182)))
INDEX
和行号来检索值。 INDEX(C183:C234,MAX((D183:AI234 = MaxVal)*ROW(D183:D234)), COLUMN(C182)) - ROW(C182))
请注意,这些都是数组函数,必须与CTRL + SHIFT + ENTER
一起输入。
我更喜欢INDEX
方法,因为它是非易失性的(OFFSET
和INDIRECT
都是易失性函数,并且每次对工作表/ excel进行更改时都会重新计算重新计算)我一般认为这是更好的做法。
要获取x值,请使用MAX((D183:AI234 = MaxVal)*COLUMN(D183:AI183))
标识最大值列,并调整您选择的三种方法中的任何一种。
原始回答,找到下面的max(但不是相关类别值)的地址:
要查找要与值匹配最大值的布尔数组乘以最大条目的行,因此行数为(D183:AI234 = MaxVal)
,因此ROW(D183:D234)
。该乘法的结果是(0,0,..,最大值的行,......)的向量,因此您可以使用MAX
来查找行号。
该列也是如此,但您可以使用COLUMN(D183:AI183)
。然后,您可以使用ADDRESS
函数获取单元格地址。
全部放在一起......
=ADDRESS(MAX((D183:AI234 = MaxVal)*ROW(D183:D234)),MAX((D183:AI234 = MaxVal)*COLUMN(D183:AI183)))
必须输入数组函数(CTRL + SHIFT + ENTER)