iamlaosong文
工作表的一个区域中有很多值,我们很容易用min或者max函数找出这个区域的最小值或者最大值,但是,要确定这个值的位置就比较难了,因为match函数或者vlookup(或者hlookup)函数都是对单行或者单列进行操作的。要确定这个值的位置,需要用到数组公式,我们看下面的数组公式:
最外层的address函数是把行列值转换为单元格地址的一般表示方式,address(4,8)=$H$4,所以,公式中的两个max函数返回的是最小值所在位置的最大行号和最大列号,其中if函数就是判断区域内每个单元格是否等于最小值,相等就返回行号或者列号,否则返回false,逐一比较的结果是返回多个值(区域中有多少个单元格就返回多少个值),然后max含返回其中最大的,当然也可以用min函数返回最小的。
上面的公式稍作分解,就可以返回行号:
{=MAX(IF(A1:R18=MIN(A1:R18),ROW(A1:R18)))}
或者返回列号
{=MAX(IF(A1:R18=MIN(A1:R18),COLUMN(A1:R18)))}
所谓的数组公式,就是指定范围内的多个数据逐一进行计算,然后在这些结果中挑选(比如max)或者合成(比如sum)为一个结果返回;或者事先选择多个单元格然后输入数组公式,最后返回多个结果保存在这些单元格中。
最后,数组公式在输入后,要以Ctrl+Shift+Enter来结束公式,这样结束的数组公式看起来比普通公式外面多一组{},也就是花式大括号。