dax-新老会员的识别

突然想起来之前有看过新老会员的识别,原来都是用mysql写(先写出会员购买首次日期,再去匹配再case when写好),到dax里一个公式就可以解决,感觉清清爽爽。
还听取群里老师的意见,把退货的条件也考虑进去,重新修改了公式:
dax-新老会员的识别
里面用了earlier函数,这个函数比较抽象。
dax-新老会员的识别
重点是之前的值,有点不清晰,之前是大还是小,高还是低。
(根据用下来的经验,感觉其实earlier其实是有点取最大值的意思。)
看一下计算结果来反推ealier。
dax-新老会员的识别
公式是在filter筛选后的表中求大于0的金额和:
A0001在2018-7-2是结果是5,2018-5-2是空的,金额分别是5和-5,那很容易看出-5那条记录不符合大于0的条件,最后结果计算的其实就是金额5那条记录。
因为是2018-5-2且大于0的记录,所以earlier([日期])>[日期]等同于2018-5-2>2018-7-2。
wait……感觉哪里不对?平时都是2018-5-2 < 2018-7-2,怎么???
在pp里写两个日期比一下大小看看:
dax-新老会员的识别
是T,2018-5-2 > 2018-7-2,就是这么神奇,那这样就完全可以理解了。
earlier([会员号])=[会员号],不用说A0001=A0001.
虽然老师说逻辑要重新整理,但目前看起来这样公式暂时没有问题。
业务上来说第一次会员金额一定是>0,后面出现的无论是再次销售还是退货,都默认是老会员,所以金额大于0的条件没毛病。
over,有点乱。

猜你喜欢

转载自blog.51cto.com/11729955/2150686