数据源: 查询结果: 处理类似这样区间查询的问题,通常可以使用vlookup,lookup、match等函数,利用其查找的原理来实现。 这里先看一个栗子。 需要在左边的表格,查找右边的数值。 用vlookup,lookup,match三个公式。 vlookup公式: =VLOOKUP($Q2,$O$1:$O$6,1,TRUE) lookup公式: =LOOKUP(Q2,$O$1:$O$6,$O$1:$O$6) match公式: =MATCH(Q2,$O$1:$O$6,1) 返回结果: 可见,三个公式,在查找的时候,都返回比查找值小的最大的值(或位置),都用到了函数本身的模糊查找设置。 如100为例子,vlooukp在o1:o6查找,找不到,返回比100小的最大值81.lookup同样如此,match同样如此,只是match返回的结果是单元格所在的行号(位置)。 上述的栗子,前提是o1:o6中的数据源要升序排列(切记切记)。 再回头,将数据源更改如下 此题要求按2个条件分区间查找,按大类和价格模糊查找。 多条件查找,一般都使用lookup函数的套路。 尽管vlookup、match也能实现多条件查找,但远远没有lookup来的方便。 公式如下: =LOOKUP(1,0/(($A$2:$A$18=F2)*($B$2:$B$18<=G2)),$D$2:$D$18) 神马都不需要管,按套路照着做来就行。 =LOOKUP(1,0/((条件1)*(条件2)*......更多条件),查找区间) 条件1:大类 $A$2:$A$18=F2 条件2:返回小于等于查找价格的最大值 $B$2:$B$18<=G2 公式下拉,结果: |
|