如图A列至C列为源数据,某公司决定派发优惠券,同时扣减相关人员的销售收入,规则如下:
每当客户下单时,公司会比较之后几天的价格,赠送一张优惠券.面值是距离下单时间最近日期且小于当前下单金额的订单价的一半。
求扣减优惠券后销售人员的实际总收入。
公式如下:
=REDUCE({0;0;0},C2:C17,LAMBDA(x,y,LET(
a,OFFSET(y,,-2),
sum,y-IFERROR(TAKE(TOCOL(IF((OFFSET(y,1,,20)<y)*(OFFSET(y,1,-2,20)=a),OFFSET(y,1,,20),0/0),3),1)/2,0),
IFS(a="a1",x VSTACK(sum,0,0),a="a2",x VSTACK(0,sum,0),a="a3",x VSTACK(0,0,sum))
)))
公式思路:
此例主题架构:reduce(ifs……,ifs对传递进行来的数据判断属于哪一个销售员,并以数组的形式与初始值{0;0;0}相加。
a变量通过offset偏移得到销售人员的姓名。
sum变量计算折扣后的金额。
本例特色就是将初始值设置为一个数组,正好对应三个销售人员,并通过vstack函数对sum变量的位置调整,实现与三个销售人员的分类汇总的作用。
评论 (0)