1、表格视觉对象里,想一行中同时有当月值和上个月度量值,但这两个值会出现在两行里。
一、问题描述:
现有两个表如下,通过周期进行一对多关联。
维度表2-周期表:周期、年份、月份
事实表-RFM:rfmPeriod、endNum、classification、fValues
我想做一个表格视觉对象,有维度字段编码、分类,数值字段F,和度量值【lastFvalue】。页面上有一个切片器,单选筛选维度表里的周期字段。事实表中的不同周期内统一编码可能对应两个分类。
度量值统计方法dax脚本如下: l
lastFvalue =
CALCULATE(
sum('事实表-RFM'[fValues])
,FILTER(all('维度表2-周期表'),DATEADD('事实表-RFM'[rfmPeriod],-1,MONTH))
)
问题来了,当选择一个周期后,表对象里显示同一个编码出现了两行数据,一行6月F值,一行7月F值,但是此时切片器其实已经选择了7月。

如果把度量值改为如下版本:
lastFvalue =
CALCULATE(
sum('事实表-RFM'[fValues])
,FILTER(all('维度表2-周期表'),DATEDIFF([周期],SELECTEDVALUE('维度表2-周期表'[周期]),MONTH)=1)
)
会得到下面的结果

二、s改进效果:
每行只显示客户编码、当月的类型、当月F值、上个月F值
修改后的DAX
lastFvalue =
CALCULATE(
sum('事实表-RFM'[fValues])
,FILTER(all('维度表2-周期表'),DATEDIFF([周期],SELECTEDVALUE('维度表2-周期表'[周期]),MONTH)=1)
)
修改后得到了想要的效果

三、总结:
这个问题感觉时calculate筛选器的和表关系的双重问题。因为周期表和RFM表属于一对多的关系,当同一周期和上一周期的度量值共同存在时,周期表的上下文会识别为两个周期。因此需要再对RFM表进行筛选。
以上是我的理解,以下是deepseek给出的解释。


被折叠的 条评论
为什么被折叠?



