首页 文章

DAX上个月至今的总数是给出整个上个月的整个总数

提问于
浏览
0

我在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 回答

  • 0

    如果您在月份汇总(即您正在查看2016年12月与2016年11月),那么您上面的衡量标准将显示整个12月与11月整个月相比(自12月以来部分月份和11月份不是,它会导致您看到的不匹配) .

    如果您过滤到当前日期(例如12月7日),那么您的MTD和上个月MTD指标都只会显示相应月份的第7个月 .

    假设您不想过滤到日期级别(不合理),您可以增强公式以过滤掉未来日期 . 例如:

    PMYTD = totalmtd(
        sum(SALES_VOUCHERS[SaleValue]),
        dateadd(
            FILTER(
                DATESMTD(DatesTable[Date]),
                DatesTable[Date]<TODAY()
            ),
            -1,
            month
        )
    )
    

    这就是说,如果日期在今天之后,请不要将其传递给TOTALMTD计算(因此它只会计算一个月的前7天,例如,如果今天是12月8日 - 即使您正在查看完整几个月的报告) .

    附注:您还可以编写上个月的度量来重新使用MTD度量而不是重新定义它 . 这样,如果您更改了MTD计算,则先前的MTD计算会自动更新 .

    PMYTD = CALCULATE(
        [CurrentMTD],
        DATEADD(
            FILTER(
                DatesTable[Date],
                DatesTable[Date]<TODAY()
            ),
            -1,
            MONTH
        )
    )
    

    有用的资源:

相关问题