[已解决] 如何用PQ解决往复返利的问题

  [复制链接]
查看192193 | 回复159 | 2021-2-18 23:06:58 | 显示全部楼层 |阅读模式
如附件所示
我想使用Powerquery来解决 给定的消费额条件下如何计算出各返利档位中可进行的返利次数
谢谢
11079111902091.jpg
11079111902092.zip (7.56 KB, 下载次数: 0)
回复

使用道具 举报

mrdxy | 2021-2-18 23:12:58 | 显示全部楼层
往复返利怎么算的,举个例子。
回复

使用道具 举报

agen29 | 2021-2-18 23:16:58 | 显示全部楼层
9809-100-200-350-700-1350-2650=4459<5000,所以返利金额:0+5+12+20+45+90+180=352?
回复

使用道具 举报

酷酷 | 2021-2-18 23:21:59 | 显示全部楼层
9809-100-200-350-700-1350-2650=4459


感觉和个税计算有点类似
回复

使用道具 举报

发动机 | 2021-2-18 23:28:59 | 显示全部楼层
飞天篮球猪 发表于 2019-1-9 14:24
往复返利怎么算的,举个例子。


比如9809在第一个档位上 剪掉350之后 还是位于第一档位 那么可以再减350 直到滑出第一档位后 接着可以再根据第二档位 再减
回复

使用道具 举报

静静 | 2021-2-18 23:31:59 | 显示全部楼层
比如9809在第一个档位上 剪掉350之后 还是位于第一档位 那么可以再减350 直到滑出第一档位后 接着可以再 ...


结果是{14;13;14;14;17;12;19;0}对吗?
回复

使用道具 举报

sayonara3310 | 2021-2-18 23:40:59 | 显示全部楼层
结果是{14;13;14;14;17;12;19;0}对吗?


怎么搞出的呢? 累进要用到 List.Accumulate()?
回复

使用道具 举报

阿佳 | 2021-2-18 23:44:00 | 显示全部楼层
怎么搞出的呢? 累进要用到 List.Accumulate()?


你试试,应该是对的,@fx那部分是递归,最后一档没加,就在后边添加了一个{0}

  1. = List.Accumulate( {{5000,350},{2650,180},{1350,90},{700,45},{350,20},{200,12},{100,5}},

  2.        {9809,{}},

  3.        (s,c)=>[fx=(x,y)=>if y<=c{0} then x else @fx(x+1,y-c{1}),

  4.          n=fx(0,s{0}),

  5.          r={s{0}-n*c{1},s{1}&{n}}][r]){1}&{0}
复制代码
回复

使用道具 举报

大阿哥 | 2021-2-18 23:49:00 | 显示全部楼层
你试试,应该是对的,@fx那部分是递归,最后一档没加,就在后边添加了一个{0}


完蛋 这个完全没看懂 要抓狂了看来竞赛里面的才是进阶的硬核啊
回复

使用道具 举报

jack | 2021-2-18 23:52:00 | 显示全部楼层
你试试,应该是对的,@fx那部分是递归,最后一档没加,就在后边添加了一个{0}


我其实是把竞赛里面的碾压式计算返利试着用pq解出来 逻辑是计算出一个消费额的返利情况 然后做成自定义函数 接着应用到其他的消费额 然后再去汇总
从你的公式看 所有的档位的底限与返利都要手输到函数内 对吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则