2016-06-22 58 views
0

我試圖確定每個客戶在上次約會的設定時間範圍內有多少次返回約會。我需要確定每行是否是在離開最後一次約會的48小時內(即約會開始時間在他們的預約約會結束時間的48小時內)的「返回」預約。基於行上下文日期比較的Powerpivot dax篩選行

example data

我試圖找到一個答案,但我真的不知道我正在尋找和是比較新的DAX所以道歉,如果這是基本的東西。我可以做相對於最新約會的第一部分,因爲它只是該客戶所有約會的最大值。

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

我在苦苦掙扎的是如何將額外的過濾器,只看先前的約會(相對於每一行)。我假設,如果我可以返回一個已過濾的表格,只顯示那些先前的記錄,我可以獲得最大值並比較,但不知道如何去寫dax。

非常感謝您的任何幫助。

乾杯, Chris。

回答

0

想我破解了,但我真的不知道如何計算公式工作,所以如果有人能打破它,並解釋給我,將不勝感激!

第一步驟:計算(在一個行上下文級別)最近的事先預約結束時間

=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