Powerpivot dax 基于行上下文日期比较过滤行

Powerpivot dax filtering rows based on row context date comparison

我正在尝试确定每个客户在上次预约后的设定时间范围内有多少 return 预约。我需要每行确定该特定约会是否是他们离开上次约会后 48 小时内的 'return' 约会(即他们的约会开始时间是否在他们之前约会结束时间的 48 小时内)?

我试图找到答案,但我不太确定我在寻找什么,而且我对 dax 还比较陌生,所以如果这是基本问题,我深表歉意。我可以做与最新约会相关的第一部分,因为它只是该客户所有约会的最大值。

=CALCULATE(max([End Time]),ALLEXCEPT(Table,Table[Customer ID]))

我正在苦苦挣扎的是如何合并额外的过滤器以仅查看之前的约会(相对于每一行)。我假设如果我可以 return 一个 table 被过滤以仅显示那些先前的记录我可以获得最大值并比较它但不确定如何在 dax 中编写它。

非常感谢您的帮助。

干杯, 克里斯

我想我破解了它,虽然我不太确定这个公式是如何工作的,所以如果有人能分解它并向我解释它,我将不胜感激!

第一步:计算(在行上下文级别)最近的先前约会结束时间

=CALCULATE(Max([end time]),ALLEXCEPT(Table1,Table1[customer ID]),EARLIER(Table1[start time])>Table1[start time])

第二步:计算当前约会与最近结束时间的时差

=IF(NOT(ISBLANK([Most Recent Prior End Time])),1.*[end time]-[Most Recent Prior End Time],BLANK())

我知道时差是如何工作的,但不知道早期函数在计算最近约会的结束时间时是如何工作的。

final table result