DAX中LASTDATE()函數(shù)引用的日期列不得存在重復日期

在《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ù)呢?不得而知。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,692評論 18 399
  • 錯誤:1000 SQLSTATE: HY000 (ER_HASHCHK)消息:hashchk 錯誤:1001 SQ...
    灼灼2015閱讀 23,958評論 0 6
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • ·錯誤:1000 SQLSTATE: HY000 (ER_HASHCHK)消息:hashchk·錯誤:1001 S...
    Catke閱讀 1,714評論 0 2
  • 如果說阿笙和三叔的相識是通過某個紐帶相連的,那隋意一定是個至關(guān)重要的人。 其實阿笙和隋意本應該不認識的,畢竟一個那...
    橪楓313閱讀 847評論 2 0

友情鏈接更多精彩內(nèi)容