首页 > 解决方案 > 如何在 DAX Power BI 中按月细分日期范围?

问题描述

我有两个日期:

“2018-01-05”和“2019-01-05”

如何创建计算表以按月分解这些日期。应该看起来像这样:

在此处输入图像描述

标签: powerbidaxpowerbi-embedded

解决方案


可能有很多方法可以做到这一点,但这里有一种结合了几个不同概念的方法:

Table = 
    VAR Starting = DATE(2018, 1, 5)
    VAR Ending = DATE(2019, 1, 5)
    VAR MonthTable =
        SUMMARIZE(
            ADDCOLUMNS(
                CALENDAR(Starting, Ending),
                "StartDate", EOMONTH([Date], 0) + 1),
            [StartDate],
            "EndDate", EOMONTH([StartDate], 0) + 1)
    RETURN UNION(
               ROW("StartDate", Starting, "EndDate", EOMONTH(Starting, 0) + 1),
               FILTER(MonthTable, [EndDate] < Ending && [StartDate] > Starting),
               ROW("StartDate", EOMONTH(Ending, -1) + 1, "EndDate", Ending)
                )

基本上,您从CALENDAR获取所有日期的函数开始,用相应的月份标记每个日期,然后汇总该表以仅返回每个月的一行。

由于第一行和最后一行有点不规则,我将它们添加到汇总月份表的过滤版本中,以获得您想要的表。


推荐阅读