送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! 【置顶公众号】或者【设为星标】及时接收更新不迷路 小伙伴们好,今天要和大家发分享一道关于数据查找的题目。题目是这样子的: 我们要从左侧的源数据中查找并提取对应商品的生效价格。思考十秒钟,该如何操作呢? 我曾经写过一篇有关于FREQUENCY函数的帖子。它是处理这类问题的最佳工具。 在单元格H2中输入公式“=LOOKUP(,0/FREQUENCY(0,(($C$2:$C$17-G2<=0)*($A$2:$A$17=F2)*($C$2:$C$17)-G2)^2),$D$2:$D$17)”,回车后向下拖曳即可。 思路: 这里使用了FREQUENCY函数的一个经典用法。
观察一下源数据。由于源数据在排列时时间是升序排列的,因此我们就可以省略$C$2:$C$17-G2<=0这一个条件,并直接使用LOOKUP函数了。 在单元格H2中输入公式“=LOOKUP(G2,IF($A$2:$A$17=F2,$C$2:$C$17),$D$2:$D$17)”并向下拖曳即可。 思路: 这里注意不能使用($A$2:$A$17=F2)*($C$2:$C$17)这样的形式,而只能使用IF函数来嵌套。原因是,IF函数将返回{FALSE;FALSE;43971;43996;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}的形式,数据依然是升序的。而($A$2:$A$17=F2)*($C$2:$C$17)的形式则返回的是{0;0;43971;43996;0;0;0;0;0;0;0;0;0;0;0;0},这并不是升序排列,所以LOOKUP函数会出错了。 -END- 长按下方二维码关注EXCEL应用之家 面对EXCEL操作问题时不再迷茫无助 我就知道你“在看” |
|