我试图显示过去12个月中每个月的销售总额,但销售数据在几个月内缺失值 . 我希望这些显示为0
数据(链接到DimDate表)
SaleDate,Amount
20190101,25
20180201,30
20180301,12
20180501,10
20180502,5
20180701,60
dax非常简单
Failed Measure =
VAR SelectedMonth = 201808
VAR SameMonthLastYear = SelectedMonth - 100
RETURN
CALCULATE (
Sum(sales[Amount]),
DimDate[MonthInt] >= SameMonthLastYear,
DimDate[MonthInt] <= SelectedMonth
)
上面的SelectedMonth来自用户选择的过滤器,它只是为了发布而简化 .
所以dax确实有效,但结果表只显示销售表中数据存在的月份 .
如果我向 Sum(Sales[Amount])
添加0,它会将所有空白月份显示为0并显示DimDate表中的所有月份 . 这是一种中途,但在那一点上,我需要过滤日期,只显示相关的12个月 .
因此,上述内容仅显示2018年8月至2017年8月的数据
它似乎应该是容易的或常见的问题,但我没有找到解决方案的运气 .
1 回答
尝试:
工作原理:“失败的度量”(零)的问题是DAX总是为所有MonthYearShort项计算它 . 过滤应用于计算输入,而不应用于枢轴行上的项目 . 如果计算结果为空,则默认情况下隐藏 . 如果对结果添加零,则它们不再是空白并将显示 .
要解决此问题,您需要避免计算无关月份的金额 . 有几种方法可以做到;在我的方法中,我使用SUMX迭代MonthInt列表,测试它是否属于所需的时间段,如果是,则计算销售额,否则将其留空(默认情况下) .