查找函数在查找最近购买日期中的实际应用

今天,我们来谈谈查找函数的另一个实际应用。

在实践中,我们经常会遇到查找最后一条记录的问题,如下所示(查找产品AC1的最后购买日期,其中B列按升序排序)

lookup函数的实际应用,查找最后一次采购日期

我们在单元格G3中输入产品名称AC1,然后在H3输入公式=LOOKUP(1,0/(A2:A13=G3),B2:B13)。

lookup函数的实际应用,查找最后一次采购日期

该公式分析如下

1.(A2:A13=G3)这部分是判断A2:A13产品名称区中哪些产品名称等于AC1。通过观察可以发现,下面的是AC1,有三个。也就是这三个地方会得到一个真,其他的都是假。

lookup函数的实际应用,查找最后一次采购日期

2.而不是AC1产品,只会是假的。所以(A2:A13=G3)得到的数据将是{ FALSE真实;假的;假的;假的;真实;假的;假的;假的;真实;假的;FALSE}

图形方法:

lookup函数的实际应用,查找最后一次采购日期

3,而0/(A2:A13=G3)相当于用0去掉上面的。

{假;真实;假的;假的;假的;真实;假的;假的;假的;真实;假的;FALSE}

在计算机中,true表示正确,相当于1。而false表示错误,相当于0。而且我们知道0/0是一个误差值,0/1=0。所以上面的结果是

{#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!}

图形方法:

lookup函数的实际应用,查找最后一次采购日期

可以看到上面只有三个是0(用红色标注),其他都是误差值。在查找函数中,错误值被忽略。所以上面的数据串只会出现在查找函数中

(“”表示空值){“”;0;"";"";"";0;"";"";"";0;"";""}

图形方法:

lookup函数的实际应用,查找最后一次采购日期

以上每一项;它表示区分位置,总共有12个值,3个零和9个空值。它对应于第三个参数B2:B13(即日期部分区域),有多少个日期就有多少个位置。

4.那么我们上面公式的第一个参数就是1,也就是我们用1来{ " ";0;"";"";"";0;"";"";"";0;"";在这部分区域中,我们将找到等于或最接近且小于的位置。根据Lookup函数的二分法,我们将首先找到等于1的位置,但显然没有。然后我们会找到最接近和小于1的位置,因为上面的0都满足小于和最接近,而且因为查找函数默认你是升序的,所以我们会一直往下找到最后一个0的位置。这个时候我们来算一下,第10个位置满足了。所以lookup函数返回B2的第10个位置:B13,也就是B11(建议你用手指头数一数),所以最终结果是B11单元格的值,也就是2019年1月11日。

图形方法:

lookup函数的实际应用,查找最后一次采购日期

以上是这个公式的分析。

最后,在这里,我们的产品名称不需要按升序排序,但是要求date的B列按日期排序,因为我们寻找的是最后的购买日期。