要根据价格表查询价格,查询的时候,要涉及非常多的条件,始发地、目的地,重量区域,全部判断完,还得跟最低价比较获取两者之间的最大值。

听起来很难,实际更难,表格还是我做了一些修正后的。

价格表

若是不会LOOKUP函数的这个高级用法,就太可惜了!

查询表

若是不会LOOKUP函数的这个高级用法,就太可惜了!

举个例子,始发地义乌,目的地北京,重量1680.57,对应的价格是1.6。金额就是=1680.57*1.6,算出来的金额再跟最低价200比较获取最大值,也就是=MAX(1680.57*1.6,200)。

若是不会LOOKUP函数的这个高级用法,就太可惜了!

多条件查找,首选LOOKUP函数,语法:

=LOOKUP(1,0/((条件1)*(条件2)),返回区域)

先来搞定最低价,这个简单点。

=LOOKUP(1,0/((B2=价格表!$A$3:$A$24)*(FIND(C2,价格表!$B$3:$B$24))),价格表!$J$3:$J$24)

若是不会LOOKUP函数的这个高级用法,就太可惜了!

区间的单价就比较麻烦,需要判断在哪个区间。

为了方便判断在哪个区间,我在第一行将每个区间的下限写出来。

若是不会LOOKUP函数的这个高级用法,就太可惜了!

有了下限后,可以借助MATCH函数的模糊查找判断在哪列。

=MATCH(A2,价格表!$C$1:$I$1)

若是不会LOOKUP函数的这个高级用法,就太可惜了!

再借助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)))

若是不会LOOKUP函数的这个高级用法,就太可惜了!

单价出来后,金额也跟着出来。

=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)))

若是不会LOOKUP函数的这个高级用法,就太可惜了!

最低价跟金额比较获取最大值。

=MAX(E2,F2)

若是不会LOOKUP函数的这个高级用法,就太可惜了!

最后将所有公式合并起来,并嵌套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函数的这个高级用法,就太可惜了!

涉及到的函数比较多,理解起来可能有点困难,尝试着拆分开,然后再组合起来会更容易理解。

这个案例如果能学会,以后查找其他东西,简直就是小意思。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。