Powerbi 计算每行的列日期和最小切片器日期之间的日期差

Powerbi 计算每行的列日期和最小切片器日期之间的日期差,powerbi,Powerbi,我认为以下公式很好地概括了我想要实现的目标: date diff = ABS ( DATEDIFF ( data_table[login_date], SELECTEDVALUE ( 'Date'[Date] ), DAY ) ) 但它返回了以下错误 A single value for column 'login_date' in table 'data_table' cannot be determined. This ca

我认为以下公式很好地概括了我想要实现的目标:

date diff = 
ABS (
    DATEDIFF (
        data_table[login_date],
        SELECTEDVALUE ( 'Date'[Date] ),
        DAY
    )
)
但它返回了以下错误

A single value for column 'login_date' in table 'data_table' cannot be determined. This can happen when a measure formula refers to a column that contains many values without specifying an aggregation such as min, max, count, or sum to get a single result.
换句话说,我希望在我的data_表中有一列,根据最小切片器日期选择动态计算日期差异

我的最终目标是根据切片器日期范围动态筛选出过去3个月内未登录的用户

这是数据集

user_id, login_date
111, 01/02/2021
222, 02/15/2021
444, 03/15/2021
555, 01/15/2021
我希望在日期范围的最大日期和最后一次连接日期之间的天数大于90天时过滤掉用户ID

编辑

我正在添加一个不同的公式,我正在努力,但有几个问题,使其工作

active users = CALCULATE( DISTINCTCOUNT(data_table[id]), ( FILTER ( VALUES ( data_table[id] ),  DATEDIFF(IF( ISBLANK(SELECTEDVALUE(data_table[login_date])),[Min range date],SELECTEDVALUE(data_table[login_date])),[Max range date],DAY) < 90 ) ))
activeusers=CALCULATE(DISTINCTCOUNT(数据表[id]),(FILTER(值(数据表[id]),DATEDIFF(如果为空(SELECTEDVALUE(数据表[login\u date]),[Min range date],SELECTEDVALUE(数据表[login\u date]),[Max range date],<90)))

您不能有一个动态计算的列,但可以使用度量值来实现这一点。您在计算中遇到的问题是,它需要逐行计算,而不是对一列进行计算。这就是为什么在表“data\u table”中得到“login\u date”列的单个值无法确定”错误的原因

在本例中,您可以使用,因为这是一个迭代器,它将逐行执行。因此,采取以下措施:

Selected Date = SELECTEDVALUE('Calendar'[Date])
这将读取所选日期。根据切片器的设置方式,如果需要,可以使用最小/最大值对其进行包装。您可以将切片器更改为单选,如果您只需要一个值

Date Calc = SUMX('Table', DATEDIFF('Table'[Login_date], [Selected Date], DAY))
它使用SUMX逐行计算

然后,您可以使用此度量来驱动您的视觉效果。在这个例子中,我已经过滤掉了自登录以来超过30天的内容


如果选择新日期,它将立即重新计算。这将为您的用例设置正确的路径。

您不能有一个动态更新的列,它必须是一个度量值。你能发布一些示例数据吗?有预期的结果吗?@Jon我添加了更多细节,希望能有所帮助。