Excel函数近300个,但是结果是引用的真的没几个,目前所知道的有OFFSET、INDIRECT 和 365版本的XLOOKUP!但是有一个函数,你说他是引用函数吧,有的时候它又不是,你说他不是,有的时候又是!案例说明:根据选择的开始月份、结束月份和姓名,求出对应的金额合计这个案例实在是没什么难度,但是需要考虑用户把开始月份和结束月份选反了的情况!就比较麻烦了!我们来看看INDEX如何处理这个问题,下面是问题处理的详细讲解
=SUM(INDEX($B$2:$N$12,MATCH($C$16,$B$2:$B$12,),MATCH($C$14,$B$2:$N$2,)):INDEX($B$2:$N$12,MATCH($C$16,$B$2:$B$12,),MATCH($C$15,$B$2:$N$2,)))
看到这么长的公式是不是直接蒙了!其实你认真听完分析就明白其实非常简单,只是公式的重复!公式1:INDEX($B$2:$N$12,MATCH($C$16,$B$2:$B$12,),MATCH($C$14,$B$2:$N$2,))INDEX($B$2:$N$12,MATCH($C$16,$B$2:$B$12,),MATCH($C$15,$B$2:$N$2,))两个公式,只有第二参数有区分,一个是开始,一个匹配结束,仅此而已冒号是单元格的区域联合运算符,就好像大家平时写的A1:A3,表示对应的首尾组成的矩形区域!知道这点那么上面应该不是的是公式1:公式2所形成的矩形区域,那么为什么可以这样写呢?有一个专门的函数 ISREF,我们可以试试!完全符合我们的预期!大部分函数返回的都是单元格中的值,只有极少数,我们开头讲了,可以返回单元格引用,你可以直接为把这个单元格返回给你,而不是值!所以我们才可以和其他单元格使用区域运算符拼接INDEX的基础语法:INDEX(区域,行,列),结果返回交叉点的单元格引用!当然这样说是不严谨的,因为他还有数组用法,所以他是半个引用函数!比如我们下面看到的就是数组用法,第一参数为常量数组!结果是FALSE!▍5、为什么开始和结束日期选反了也可以得到正确的结果?我们从上面的分析中已经知道公式1和公式2组合的是一个区域!就好像我们的A1:A3,那么A1:A3 和A3:A1这两个区域有区别吗?显然是没有的!如果我们在Excel中输入A3:A1会自动调整成A1:A3今天我们就大概解释到这里,新手模仿,进阶就要学习原理!
关于公式1和MATCH函数,本文就不啰嗦了,阅读下面两篇就足够了!