首页 > 解决方案 > Power BI - 将 N 个工作日添加到日期

问题描述

我有一个日历表,其中有一列存储标志以指示日历日期是否为工作日(工作日)。WorkDay_FL = 0 表示日期是周末或假期。我想创建一个计算列以将 5 个工作日添加到给定日期。

因此,如果日期 = 2020 年 12 月 30 日,即 2020 年 12 月 30 日,那么添加 5 个工作日应该会给我 2020 年 1 月 7 日(2021 年 1 月 7 日)。

31-Dec-2020 = WeekDay
1-Jan-2021 = Holiday
2-Jan-2021 = Weekend
3-Jan-2021 = Weekend
4-Jan-2021 = WeekDay
5-Jan-2021 = WeekDay
6-Jan-2021 = WeekDay
7-Jan-2021 = WeekDay

DAX 公式或 Power Query 函数都可以使用。

谢谢

标签: powerbidaxpowerquery

解决方案


最简单的方法是在日历表中创建一个计算表,其中包含工作日的累进数字。例如,假设您的 WorkDay_FL 为 1 表示工作日

WorkDayProg = 
VAR CurDate = 'Date'[Date]
RETURN CALCULATE( SUM('Date'[WorkDay_FL]), 'Date'[Date] <= CurDate, REMOVEFILTERS('Date') )

并使用 WorkDayProg 计算列仅计算工作日的未来(或过去)日期

FiveWorkingDaysInTheFuture =
VAR CurrentWorkDay =
    MAX( 'Date'[WorkDayProg] )
RETURN
    CALCULATE(
        MIN( 'Date'[Date] ),
        'Date'[WorkDayProg] = CurrentWorkDay + 5,
        REMOVEFILTERS( 'Date' )
    )

我们使用 MIN 因为非工作日的 WorkDayProg 等于最后一个工作日。


推荐阅读