Excel 求助,INDIRECT+TEXT+MAX公式解释

如题所述

以上图为示例

=INDIRECT(TEXT(MAX(IF(A1=A2:G18,ROW(2:18)*1000+COLUMN(B:H),)),"r0c000"),)从最里层括号开始拆:
IF(A1=A2:G18,ROW(2:18)*1000+COLUMN(B:H),)
如果A2:G18中单元格的值等于A1,那么
ROW(2:18)*1000+COLUMN(B:H)记录下来符合条件的值的行号*1000+右移一列的列号。
这儿行号*1000+列号的做法是引用中常用的套路,这样可以在一个数中记录某一单元格的行号和列号。(除以1000取整就是行号,对1000取余就是列号)
如果A2:G18中单元格的值不等于A1,那么返回0
这样就把符合条件的值的行列号记录下来了,
MAX(IF())
通过max函数把记录着符合条件的最后一个单元格的行列号的值取出来了。
Text(MAX(IF()))
由于一个值中同时存储着行列号,用text函数把它变成了RC表示方法,由于行号乘了1000,所以列号肯定在后三位,所以"r0c000"可以准确表示其位置。
=INDIRECT(Text(MAX(IF())),)
采用R1C1格式返回符合条件的单元格的值。

温馨提示:答案为网友推荐,仅供参考
相似回答