如何在Excel工作表的一堆数据中找到最近的日期匹配金额

鉴水鱼技能说 2024-09-09 16:58:35

有网友问:现在已经把采购入库单引出来做一个EXCEL表格了,那我们的一个物料可能从2022年到2024年都有不同批次的采购,有的可能就22年采购一次,那么如何把一个物品最近的采购时间对应的金额筛出来?数据表如下图所示:

这个问题是Excel使用过程中比较典型的一个查找统计问题,值得花点时间去解决。想一想的话,相应的操作应该是:先列出有哪些销售的商品,然后,找出各类商品销售的日期有哪些,再在这批日期中找出最近的日期;最后,按照找出的商品名称与销售日期,查找对应的销售金额。

如果你使用的是Excel2021及以上版本或WPS Office,那么,我们就可以结合使用Unique、Filter、Large、Match、Index等函数,获得相应的数据值。假设有如下图所示的Excel工作表:

图1 原始数据表

操作的基本思路是: (1)首先使用Unique函数列出B列中有多少个唯一的名称值,输入到上图所示工作表的F2开始的单元格中,相应的公式为【=UNIQUE(B2:B33)】,按回车后确认输入,即可得到如下图所示的所有且唯一的商品名称列表。

列出销售商品名称(唯一)

(2)用Filter函数筛选出A列中日期值为F列单元格值的单元格,再用Large函数返回这批值中最大的值(即最近的日期),在上图所示的工作表的G2单元格中输入公式【=LARGE(FILTER($A$2:$A$33,$B$2:$B$33=F2,TRUE),1)】,按回车键后确认输入,然后用公式复制方式向下填充,即可得到如下图所示的数据表。

筛选出指定商品的最近销售日期

因为Filter函数中筛选的数据区域及条件查找区域相同,所以在公式中要使用绝对地址引用。

(3)最后一步,根据已求得的名称与日期,先使用Match函数查找“名称相同且日期相同”的行,然后用Index函数获得同一行中C列的“金额”值。在上图所示的Excel工作表的H2单元格中输入公式【=INDEX(C:C,MATCH(1,(A:A=G2)*(B:B=F2),0))】,然后再以公式复制方式向下填充,即可得到各类商品最后一次销售的金额值了,如下图示,问题得到完满解决!

给出指定商品名称与销售日期的金额值

这里,(A:A=G2)*(B:B=F2)是一个数组公式,它会在A列等于G2且B列等于F2的地方返回TRUE,其他地方返回FALSE。MATCH(1, ...)会找到第一个TRUE值的位置,然后INDEX函数会返回该位置在C列的值。

这里用到的函数比较多,涉及求唯一值的Unique函数、筛选Filter函数、求得最大值的Large函数,以及查找匹配的Match函数与数组定位的Index函数,这些函数大多是版本函数,功能强大,对于这些函数的使用可以查看我的相关头条文章内容,这里不再赘述。

我是,关注我,持续分享更多的Excel知识与操作技巧。

0 阅读:0