如何在 DAX Power BI 中按月细分日期范围?

How to break down date range by each month in DAX Power BI?

我有两个约会对象:

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

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

新建table为

Table = CALENDAR( DATE(2018, 5, 1), DATE(2019, 1, 5) - 1)

将自动生成的列 "Date" 重命名为 "Start Date"。添加新列为

End Date = Start Date + 1

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

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 函数开始获取所有日期,用相应的月份标记每个日期,然后将 table 总结为仅 return 一行每个月。

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