首页 > 解决方案 > 使用 DAX 寻找下一个工作日

问题描述

=IF(AND(WEEKDAY(AA3,2)<5,(AA3-INT(AA3))<17/24),((INT(AA3)+1)+12/24),IF(AND(WEEKDAY(AA3,2)<5,(AA3-INT(AA3))>17/24),((INT(AA3)+2)+12/24),IF(WEEKDAY(AA3,2)=5,(INT(AA3)+4)+12/24,IF(WEEKDAY(AA3,2)=7,(INT(AA3)+2)+12/24,IF(WEEKDAY(AA3,2)=6,(INT(AA3)+3)+12/24,)))))

我试图根据一周中的一天和一天中的小时找到下一个工作日。这是我已转换为 DAX 的内容,但它不起作用,我不知道为什么。

NBD = 
IF (
    AND (
        WEEKDAY ( D2S[Actual Received Time], 2 <= 5 ),
        HOUR ( D2S[Actual Received Time] ) < 14
    ),
    (
        INT ( D2S[Actual Received Time] ) + 23.99 / 24
    ),
    IF (
        AND (
            WEEKDAY ( D2S[Actual Received Time], 2 ) = 5,
            HOUR ( D2S[Actual Received Time] > 14 )
        ),
        (
            INT ( D2S[Actual Received Time] ) + 3 + 12 / 24
        ),
        IF (
            AND (
                WEEKDAY ( D2S[Actual Received Time], 2 ) <= 5,
                HOUR ( D2S[Actual Received Time] ) >= 14
            ),
            INT ( D2S[Actual Received Time] ) + 1 + 12 / 24,
            IF (
                WEEKDAY ( D2S[Actual Received Time], 2 ) = 6,
                INT ( D2S[Actual Received Time] ) + 2 + 12 / 24,
                IF (
                    WEEKDAY ( D2S[Actual Received Time], 2 ) = 7,
                    INT ( D2S[Actual Received Time] ) + 1 + 12 / 24
                )
            )
        )
    )
)

标签: excelexcel-formulapowerbiformuladax

解决方案


公式的第 4 行应为:

        WEEKDAY ( D2S[Actual Received Time], 2 ) <= 5,

(括号外有“<= 5”)


推荐阅读