如下表,是某快递公司价格表,每当查询价格时,会涉及很多条件,始发地、目的地、重量区域等,在全部条件判断完之后,还得与最低价进行比较,取两者之间的最大值 。
价格表如下:
文章插图
查询表如下:
文章插图
举例,始发地为义乌,目的地是北京,重量为1680.57,对应价格为1.6 。金额为:=1680.57*1.6,算出金额之后,再与最低价200相比较,取二者最大值,即:=MAX(1680.57*1.6,200) 。
文章插图
对于多条件查找问题,首选LOOKUP函数,其语法为:
=LOOKUP(1,0/((条件1)*(条件2)),返回区域)
先来解决最低价问题,这个比较简单一些 。
=LOOKUP(1,0/((B2=价格表!$A$3:$A$24)*(FIND(C2,价格表!$B$3:$B$24))),价格表!$J$3:$J$24)
文章插图
区间单价麻烦一些,需先判断在哪个区间内 。
为方便判断在哪个区间内,在第一行将各区间的下限写出来 。
文章插图
在有了下限之后,可借助MATCH函数的模糊查找,来判断位于哪列 。
=MATCH(A2,价格表!$C$1:$I$1)
文章插图
之后再借助OFFSET函数,引用此列的区域 。OFFSET函数引用区域时,公式不能直接写在一个单元格里,那样的话,看不出效果 。
OFFSET(价格表!$B$3:$B$24,0,MATCH(A2,价格表!$C$1:$I$1)
如此即可查询单价 。
=LOOKUP(1,0/((B2=价格表!$A$3:$A$24)*(FIND(C2,价格表!$B$3:$B$24))),OFFSET(价格表!$B$3:$B$24,0,MATCH(A2,价格表!$C$1:$I$1)))
文章插图
在单价出来之后,金额也会随之出来 。
=A2*LOOKUP(1,0/((B2=价格表!$A$3:$A$24)*(FIND(C2,价格表!$B$3:$B$24))),OFFSET(价格表!$B$3:$B$24,0,MATCH(A2,价格表!$C$1:$I$1)))
文章插图
将最低价和金额相比较,以获取最大值 。
=MAX(E2,F2)
文章插图
最后再将所有公式合并,嵌套ROUND函数即可搞定 。
=ROUND(MAX(LOOKUP(1,0/((B2=价格表!$A$3:$A$24)*(FIND(C2,价格表!$B$3:$B$24))),OFFSET(价格表!$B$3:$B$24,0,MATCH(A2,价格表!$C$1:$I$1)))*A2,LOOKUP(1,0/((B2=价格表!$A$3:$A$24)*(FIND(C2,价格表!$B$3:$B$24))),价格表!$J$3:$J$24)),2)
文章插图
【学会LOOKUP函数这个高级用法,多条件查询就很容易了!】这条公式涉及的函数比较多,理解起来不是很容易,大家可以尝试将其拆分开,再组合起来,会更容易理解一些 。
推荐阅读
- 一 用思维导图精讲LOOKUP函数你造吗?
- Sumifs函数的3个高级用法
- sumifs函数公式应用
- sumifs函数应用实例
- Sumif不止是条件求和,函数搭配通配符,数据统计功能更强大
- SUMIF函数,了解下!
- SUMIF函数14种经典用法,速收!
- Sumif函数搭配通配符*,这才是高效的条件求和
- SUMIF函数的高级用法,简单实用,一学就会!
- SUMIF函数的使用,大多数人只会第一个