我在Power BI中使用DAX来计算迄今为止的上个月销售总额以创建KPI可视化 . 即如果今天是12月7日,那么我想从11月1日到11月7日获得销售总额,并与当前月份进行比较 .
CurrentMTD = TOTALMTD(SUM(SALES_VOUCHERS[SaleValue]),DatesTable[Date])
这很好用 . 然而,上个月的年初至今给出了整个11月份的总和 . 到目前为止我已尝试过以下内容
PMYTD = totalmtd(sum(SALES_VOUCHERS[SaleValue]),dateadd(DATESMTD(DatesTable[Date]),-1,month))
和
PMYTD = CALCULATE(sum(SALES_VOUCHERS[SaleValue]),
DATESBETWEEN(DatesTable[Date],
FIRSTDATE(PREVIOUSMONTH(DatesTable[Date])),
LASTDATE(DATEADD(DatesTable[Date],-1,MONTH))))
两者都返回相同的答案,这是整个上个月的总和 . 如果我只是在上述版本之间的日期中硬编码开始和结束日期,那么我确实得到了所需的结果 . 但这不是解决方案 .
我已将事实表(Sales_VOUCHERS)链接到DatesTable,截至目前,报表页面上没有其他可视化内容 . 请帮助我错过的内容,以及如何获得上个月的年度总数
1 回答
如果您在月份汇总(即您正在查看2016年12月与2016年11月),那么您上面的衡量标准将显示整个12月与11月整个月相比(自12月以来部分月份和11月份不是,它会导致您看到的不匹配) .
如果您过滤到当前日期(例如12月7日),那么您的MTD和上个月MTD指标都只会显示相应月份的第7个月 .
假设您不想过滤到日期级别(不合理),您可以增强公式以过滤掉未来日期 . 例如:
这就是说,如果日期在今天之后,请不要将其传递给TOTALMTD计算(因此它只会计算一个月的前7天,例如,如果今天是12月8日 - 即使您正在查看完整几个月的报告) .
附注:您还可以编写上个月的度量来重新使用MTD度量而不是重新定义它 . 这样,如果您更改了MTD计算,则先前的MTD计算会自动更新 .
有用的资源:
https://www.powerpivotpro.com/2016/01/year-to-date-in-previousprior-year/(涵盖此问题的文章和各种解决方案)
https://community.powerbi.com/t5/Desktop/Compare-MTD-with-previous-period/td-p/24656(关于同一问题的论坛讨论)
http://community.powerbi.com/t5/Desktop/Time-Intelligence-TOTALMTD-vs-DATESMTD-vs-DATEADD/td-p/10088(关于DATESMTD与TOTALMTD的论坛讨论)