DAX 计算列 - NEXTMONTH() 值,移动行上下文

DAX calculated column - NEXTMONTH() value, shift row context

我已成功计算 "WorkDaysPassed - Current Mo"。这是一个计算列,用于计算当月已经过去的工作日数,仅针对当月,并为当月的每个日期记录打印该值。本月结束于“2022 年 1 月 31 日”。

我需要帮助弄清楚如何在前几个月的日期记录中打印相同的值。上个月结束于“12/31/2021”。计算的列将命名为 "WorkDaysPassed - Closing Month"。我认为 NEXTMONTH() 计算可以在聚合函数中执行此操作。

如何在计算列中执行此操作?以下是我到目前为止尝试计算的内容。

计算正确

  1. 这是一个计算列,计算当月已经过去的工作日数,仅针对当月,并为当月的每个日期记录打印该值。
WorkDaysPassed - Current Mo = 
IF( NOT('Calendar'[IsCurrentMonth]), BLANK(), 
CALCULATE(
    COUNTROWS ( 'Calendar' ),
    'Calendar'[Date],
    'Calendar'[IsWorkingDay] = TRUE 
    && 'Calendar'[Date] <= TODAY ()
    && MONTH('Calendar'[Date]) = MONTH(TODAY())
    && YEAR('Calendar'[Date]) = YEAR(TODAY())
))

尝试计算

  1. 日期 table 中的每一行都打印 186。
WorkDaysPassed - Closing Month = 
CALCULATE(SUM('Calendar'[WorkDaysPassed - Current Mo]), ALL('Calendar') ) 

Table数据样本

我能够通过定义计算量度并在计算量列中引用该量度来实现此功能。

计算量度:

  1. WorkingDays - MTD 当前 Mo
WorkingDays - MTD Current Mo = 
IF( NOT(VALUES('Calendar'[IsCurrentMonth])), BLANK(),
CALCULATE (
        COUNTROWS ( 'Calendar' ),
        'Calendar'[Date],
        'Calendar'[IsWorkingDay] = TRUE 
        && 'Calendar'[Date] <= TODAY ()
        && MONTH('Calendar'[Date]) = MONTH(TODAY())
        && YEAR('Calendar'[Date]) = YEAR(TODAY())
))
  1. 工作日 MTD - 结束月份
Working Days MTD - Closing Month = 
IF(NOT(HASONEVALUE('Calendar'[Mo-Yr])),BLANK(), 
CALCULATE (
    [WorkingDays - MTD Current Mo],
    NEXTMONTH ( 'Calendar'[Date] ) 
))

计算列: