对商品的多次报价中,如何提取倒数第二次的报价?

送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

看到这样一个比较有意思的题目,分享给大家。

我们以前介绍过,如何提取行或列的最后一个数值或文本,因为通常来讲,最后一个代表着最新的数据。

但有时候,比如说,为了对比一下价格的趋势,可能会要提取前几次的一个报价。例如下面的这个题目。它就是要提取商品的倒数第二次的价格。

思考十秒钟......,我们该如何入手呢?

01

解决这类题目,最常用的一个思路就是利用行号或列号来创建大数,并和源数据对应求和,从而达到提取第n大数的目的。

在单元格F2中输入公式“=MOD(LARGE(IF(B2:E2,COLUMN(B:E)*10^9+B2:E2),MIN(COUNTA(B2:E2),2)),10^9)”,三键回车并向下拖曳即可。

思路:

  • 10^9是一个足够大的数,用B:E的列号乘以这个数,在加上单元格区域B2:E2中的数值。这里IF函数的第一个参数B2:E2是“B2:E2<>""”的简写。IF函数的结果是{2000000161.8,3000000163.8,4000000162.2,FALSE}

  • COUNTA(B2:E2)部分,统计源数据区域中的非空单元格个数

  • MIN(COUNTA(B2:E2),2)部分,如有区域中只有一个价格,那么就返回COUNTA(B2:E2)的统计结果,除此之外,都返回数字“2”,意思是第二大的数值

  • 最后利用MOD函数对上面返回的数据求余数,就得到正确的结果了

这个思路也可以用在提取列方向上的数据。

02

利用INDEX函数我们也可以达到目的。

在单元格F2中输入公式“=INDEX(A2:E2,1,LARGE(IF(B2:E2>1,COLUMN(B:E),0),IF(COUNTIF(B2:E2,">1")>1,2,1)))”,三键回车并向下拖曳即可。

思路:

  • 第一个IF函数部分,满足大于1这个条件的,返回对应的列号;不满足的,返回0。其结果是{2,3,4,0}

  • 第二个IF函数部分,判断数据区域中不为空的单元格个数。大于1的,就返回2,否则就返回1,这个和上面的例子中使用MIN函数的思路是一样的

  • 最后利用INDEX函数取得正确结果

好了,今天和大家分享的就是这些内容了。如果大家喜欢我写的内容,请分享、转发、点赞和收藏吧!如有任何疑问可以私信我哦!

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

我就知道你“在看”

推荐阅读
(0)

相关推荐