在《Power Pivot Alchemy》Page17,作者提到可以在DAX中用LASTDATE獲取最新日期:
[LastRefreshed] = LASTDATE(Sales[TransactionDate])
其中的參數(shù)是一個日期列。我照貓畫虎,檢查公式?jīng)]有錯誤,但是拖到值區(qū)域,就出現(xiàn)如下提示:

LASTDATE運行時出錯
好吧,我知道怎么獲取唯一值,于是用了下面的公式:
=LASTDATE(DISTINCT('學習報表-系統(tǒng)'[完成時間]))
但是還是同樣的錯誤,那我再換:
=LASTDATE(VALUES('學習報表-系統(tǒng)'[完成時間]))
沒用,還是一樣的錯誤。
試試看用最傳統(tǒng)的MAX大法呢:
=MAX('學習報表-系統(tǒng)'[完成時間])
這次一次成功。
現(xiàn)在回頭來看錯誤提示,Excel告訴我是因為引用的日期列中有重復日期,但是我后來用DISTINCT和VALUES都去除重復了呀,這也不行?那我試試看新建一個沒有任何重復的日期列在來測試看。

測試數(shù)據(jù):日期重復時間不重復
這個測試數(shù)據(jù)雖然沒有重復值,但是有重復日期,所以測試也是失敗的。
那我試試看日期也不重復呢:

測試數(shù)據(jù):日期和時間都不重復
這次成功了,結(jié)果如下:

日期不重復測試成功
那日期不重復,時間重復呢?

測試數(shù)據(jù):日期不重復時間重復
刷新,一切正常:

時間重復也沒關(guān)系
查閱微軟的官方說明,也并沒有明確指出LASTDATE這個函數(shù)要求引用的日期列不得有重復日期,但是在頁面末尾給出的例子中,還是暗示出了這個限制:
=LASTDATE('InternetSales_USD'[SaleDateKey])
這個SaleDateKey我理解就是日期表的主鍵,主鍵當然不能重復。
所以,結(jié)論是:
1.當要從日期重復的列中獲取最新日期,用MAX()函數(shù);
2.當確定日期列中的日期是不重復的,則可以用LASTDATE()函數(shù);
3.為什么有了MAX()函數(shù)之后,還要有LASTDATE()這個專門的函數(shù)呢?不得而知。