查找的较量

2021-10-13 11:48:19 浏览数 (1)

今天,小吴和小范这两个小伙伴又开始研讨Excel了,他们仍然聚焦在Excel公式上。

小吴:我先抛出道题,看你能不能快速用Excel答出来。

小范:OK,拭目以待。

小吴:还是直接看工作表吧。如下图1所示,根据单元格D13和D14中的数据,在上方单元格区域C2:I10中获取预算额。

图1

小范:这还不简单,这不就是经典的INDEX/MATCH函数组合查找吗,你也太小瞧我了吧。

小范同学有点不屑,随手写下了他的公式:

=INDEX(D3:I10,MATCH(D13,C3:C10,0),MATCH(D14,D2:I2,0))

小吴:不错,看来基本功很扎实嘛。还有别的公式吗?

小范想了想,这是从左向右的正常查找,经典的VLOOKUP也用得上呀。于是,他写下了第二个公式:

=VLOOKUP(D13,C3:I10,MATCH(D14,C2:I2,0))

小吴:这都是解决这类典型的问题的经典组合,有点别出心裁的解法吗?

小范同学这时才开始变得郑重起来,看来小吴同学貌似简单的题,还深藏用意呀。他开始搜索自己的函数库,用心地思考了一会。

小范:既然要获取某单元格中的值,就要先知道这个单元格的地址,更进一步是要知道单元格所在的行列号。求行列号在前面的公式中都用过了,使用MATCH函数求得。ADDRESS函数可以返回单元格地址,而INDIRECT函数可返回字符串所代表的单元格中的值。

小范一边说,一边写下了第三个公式:

=INDIRECT(ADDRESS(MATCH(D13,C1:C10,0),MATCH(D14,A2:I2,0)))

小吴赞许地点了点头,悠悠地说:还有呢?

小范:还有公式解答?

小吴:是的。不过,不能使用表的特定语法。

小范:提示一下?

小吴:SUMPRODUCT函数和逻辑判断……

小范恍然大悟,写下了第四个公式:

=SUMPRODUCT((C3:C10=D13)*(D2:I2=D14)*(D3:I10))

小吴:还有公式吗?

小范:……

亲爱的读者,你有解决这道题的更好或更有趣的公式吗?请留言。

0 人点赞