将ALLSELECTED的DATEDIFF用作DATEADD函数的间隔

时间:2019-01-14 21:16:35

标签: dax

目标:具有三列的表格:

  • 日期,会话,以前的会话。

情况:我有两个切片器与该表交互:

  • 2018年10月22日至10月28日以及2018年11月5日至11月11日。

问题:由于无法确定DAX公式,我的previous_sessions列为空白。基本上我想完成以下

VAR datediffs = DATEDIFF(ALLSELECTED('Date'[Date]),ALLSELECTED('Previous Date'[Date]),DAY) 
RETURN
CALCULATE(
    SUM(Table[Sessions]),
    USERELATIONSHIP('Previous Date'[Date],'Date'[Date]),
    DATEADD('Date'[Date],-datediffs,DAY)
    )

datediffs变量应在11月11日至10月28日执行,并给出14天,这将是DATEADD函数中interval参数中的数字。

1 个答案:

答案 0 :(得分:1)

DATEDIFF函数的第一个参数(而不是列或表)需要标量。

您将希望在各个切片器选择中获得最大的收获。

VAR datediffs =
    DATEDIFF(
        CALCULATE (
            MAX ( 'Date'[Date] ),
            ALLSELECTED ( 'Date'[Date] )
        )
        CALCULATE (
            MAX ( 'Previous Date'[Previous Date] ),
            ALLSELECTED ( 'Previous Date'[Previous Date] )
        )
    )

我不确定RETURN部分是否可以按您期望的那样工作,但这应该为DATEADD函数提供适当的时间间隔。