如何准确获取MAXIFS函数返回结果对应的单元格地址
解决方案
你之前公式报错的核心原因是MATCH函数匹配时仅限定了K列的数值等于最大值,没有同时限定C、D列的筛选条件,因此会匹配到全列第一个符合数值要求的单元格,而非你筛选范围内的目标单元格。
你完全可以跳过「获取单元格地址再偏移」的步骤,直接获取J列的目标值,也可以按照你的原有需求拿到正确的单元格地址,两种方案如下:
方案1:一步获取J列对应值(推荐,Excel 365/2021及以上版本适用)
直接通过多条件匹配拿到结果,不需要额外计算单元格地址:
=XLOOKUP(1,($C:$C=$C82)*($D:$D=$D82)*($K:$K=MAXIFS($K:$K,$C:$C,$C82,$D:$D,$D82)),$J:$J,"无匹配")
方案2:获取正确的K列目标单元格地址
如果确实需要拿到单元格地址,只需给MATCH加上C、D列的匹配条件即可:
=CELL("address",INDEX($K:$K,MATCH(1,($C:$C=$C82)*($D:$D=$D82)*($K:$K=MAXIFS($K:$K,$C:$C,$C82,$D:$D,$D82)),0)))
这个公式返回的就是你预期的$K$82,后续再用OFFSET偏移就能拿到J列的值。
旧版Excel适配
如果你使用的是不支持动态数组的旧版Excel,输入上述公式后需要按Ctrl+Shift+Enter以数组公式的形式运行,即可得到正确结果。
内容的提问来源于stack exchange,提问作者strumpy_strudel
相关产品推荐
相关产品推荐

