某工厂需要采购的一种原材料,和供应商签订了不同的采购重量对应不同的结算重量,分了五种区间级别,分别为:
一、单日采购重量小于35吨,按照45吨计价。
二、单日采购重量小于90吨,按照90吨计价。
三、单日采购重量小于120吨,按照120吨计价。
四、单日采购重量小于160吨,按照160吨计价。
五、单日采购重量高于或等于160吨,按照实际重量计价。
现在需要对一定采购周期内的明细进行结算(表1中的物料采购吨位明细表),套用上面的区间条件,自动结算出实际的采购吨位?
效果如下图图1所示:

图 1
整理结算量
需要快速根据和供应商签订的结算条件自动结算实际采购重量,就需要把合同中的条件转换成表格可以判断的条件,把上述的五个级别的要求转换成表格中可以判断的符号。
一共五级区间,采购重量用X来表示的话,也就是:X<35、35=<X<90、90=<X<120、120=<X<160、X>=160,这几个数字区间范围。
如下图2所示:

图 2
整理结算量
梳理完后,先把采购明细表汇总一下,因为采购明细表中一天可能采购了多次,先把每天的汇总采购重量汇总计算,再来根据上面的条件来自动结算重量。
日期:=UNIQUE(B4:B44),对B列的日期去重;
采购量:=SUMIFS(C4:C44,B4:B44,E4#),汇总C列采购量,按每日汇总;
效果如下图3所示:

图 3
自动结算量
按日期汇总求和完后,就把每天的采购重量汇总到一起,再根据与供方约定的结算条件区间范围就可以判断结算重量了。判断的方式有两种方法,建议用第二种;
IFS 判断条件方法:
录入函数:
=IFS(F4#<35,45,F4#<90,90,F4#<120,120,F4#<160,160,F4#>=160,F4#)
函数释义:
IFS是多条件判断,根据条件一层一层的判断,如果条件不多的放,可以用IFS写,缺点就是条件太多了,IFS需要写多层,比较烦琐。
效果如下图4所示:

图 4
XLOOKUP模糊判断条件方法:
录入函数:
=IF(F4#>=160,F4#,XLOOKUP(F4#,{0;35;90;120},{45;90;120;160},,-1))
函数释义:
先用IF判断大于等于160的重量,再用XLOOKUP的模糊查找功能返回对应区间的结算重量。注意XLOOKUP的参数是数字“-1”,表示精确匹配或下一个较小的值。
举例说明:如查询2,这里精确匹配是没有的,找到下一个较小的0,对应的就是35;
效果如下图5所示:

图 5
