最近突然被CUE到要做促销活动的总结,出于习惯,需要对活动中出现的问题做个汇总,其中就要做价格生成是否正确。就想到要用dax来做一下不同时间段的匹配,查看价格生成情况(同时间段重叠,售价取最小数值,成本价取最后一次出现的值) 另有一张销售表格,有商品代码、销售日期: 价格匹配思路:先对区间做一个需要的规则的排序,也就是取topn1这样一个表出来,然后再取他的价格。

=CALCULATE(VALUES('区间1'[审核价格]),TOPN(1,FILTER('区间1','区间1'[开始日期]<='销售'[销售时间]&&'区间1'[结束日期]>='销售'[销售时间]&&'区间1'[商品代码]='销售'[商品代码]),'区间1'[审核价格],ASC,'区间1'[开始日期])) 相同的代码,相应的时间段,按照价格、开始日期排序,取的排名第一的表后,再去审核价格。 查看结果: 只维护了一天的价格都正确,2017/5/1-2019/1/1有重叠,取的是最小值35。 其实规则上,只需要在topn中相应的排序就可以了。 topn(前几项,‘表’,排序字段1,升/降,排序字段2,升/降,……)