1. 神操作!DAX 生成中文日期表

        共 3806字,需瀏覽 8分鐘

         ·

        2024-05-29 18:41

        之前我們介紹過如何在 Power Query 中生成一個(gè)符合本地日期格式習(xí)慣的日期表。

        參考:PowerQuery 技巧:可視化操作生成日期表

        雖然 Power Query 可以生成日期表,但是很多小伙伴還是喜歡用 DAX 來生成日期表,在使用 DAX 生成日期表的時(shí)候,我們國內(nèi)用戶的一大苦惱就是使用 FORMAT 函數(shù)提取出來的月和星期全是英文格式的,無法直接生成中文,需要進(jìn)行額外的替換操作生成中文。

        但是其實(shí)是可以直接實(shí)現(xiàn)的,本文將從原因和解決辦法兩方面為大家介紹如何使用 DAX 生成一個(gè)中文日期表。

        原因

        我們?nèi)ゲ榭?FORMAT 函數(shù)的自定義日期格式,它好像是支持將結(jié)果轉(zhuǎn)換為本地對(duì)應(yīng)日期時(shí)間格式的,而且 FORMAT 函數(shù)是支持第三個(gè)參數(shù)的,第三個(gè)參數(shù)叫做 local_name,表示函數(shù)要使用的區(qū)域設(shè)置的名稱。

        在 Power BI 中試一下,使用 FORMAT 函數(shù)的第三個(gè)參數(shù)本地化提取日期月份格式,第一個(gè) FORMAT 函數(shù)參數(shù)是中文,第二個(gè) FORMAT 函數(shù)參數(shù)是英文,第三個(gè) FORMAT 函數(shù)參數(shù)是德語,第四個(gè) FORMAT 函數(shù)參數(shù)是西班牙語。我們可以看到,除了中文,其他每一個(gè)都本地化參數(shù)都可以正確顯示。

        這是什么原因呢?

        在 FORMAT 函數(shù)的自定義日期格式部分,有一些字符串對(duì)應(yīng)的日期格式會(huì)說明已本地化,那中文對(duì)應(yīng)月份名稱沒辦法生成是不是因?yàn)?Windsow 系統(tǒng)沒有徹底把中文語言包本地化呢?

        帶著這個(gè)疑問,又查看了一下區(qū)域語言與區(qū)域語言包的對(duì)照關(guān)系,發(fā)現(xiàn)中文語言包確實(shí)是部分本地化。

        而西班牙語跟德語是完全本地化的語言包,所以西班牙語和德語的本地日期格式可以正確返回,而中文因?yàn)榛A(chǔ)語言還是 en-US,會(huì)返回符合美國日期格式的月份名稱。

        這么看來,這個(gè)問題好像無解了,但是又突然發(fā)現(xiàn) DAX FORMAT 函數(shù)是以 Visual Basic 使用的格式字符串為基礎(chǔ)。

        在 VBA 中,F(xiàn)ORMAT 函數(shù)是可以讀取本地日期格式設(shè)置的。

        解決方法

        既然 VBA 中的 FORMAT 函數(shù)可以讀取本地日期格式,我們大膽假設(shè),DAX 中的 FORMAT 函數(shù)也跟 VBA 中的一樣,可以使用指定的字符串來返回本地日期格式。VBA 中的 OOOO 和 AAAA 對(duì)應(yīng)本地區(qū)域日期的月份和周,那 DAX 中的 FORMAT 是不是也同樣適用呢?

        我們?cè)?DAX 中嘗試一下。

        成功!使用 OOOO 和 AAAA 可以直接獲取本地化的日期格式月和周,適用于任何語言,而傳統(tǒng)的 mmmm 和 dddd 不適用于沒有完全本地化的區(qū)域語言包。

        所以我們?cè)?DAX 中創(chuàng)建日期表的語句可以更改為以下語句。

        日期表 = ADDCOLUMNS (    CALENDAR ( "2019/1/1""2022/12/31" ),    "年序號(hào)"YEAR ( [Date] ),    "年份名稱"YEAR ( [Date] ) & "年",    "季度"QUARTER ( [Date] ),    "季度名稱""Q" & QUARTER ( [Date] ),    "月份序號(hào)"MONTH ( [Date] ),    "月份名稱"FORMAT ( [Date], "OOOO" ),    "月份簡稱"FORMAT ( [Date], "OOO" ),    "星期幾"FORMAT ( [Date], "AAAA" ),    "周幾"FORMAT ( [Date], "AAA" ))

        效果。

        除了這些本地月和周日期格式設(shè)置,F(xiàn)ORMAT 函數(shù)還可以設(shè)置預(yù)定義的日期和時(shí)間格式,這個(gè)設(shè)置會(huì)跟隨本地 Windows 系統(tǒng)的區(qū)域日期格式設(shè)置。

        我們可以在控制面板中更改日期、時(shí)間或數(shù)字格式中設(shè)置。

        默認(rèn)的長日期格式是 yyyy年M月d日,也可以在前面增加星期幾。

        在 Power BI 中使用 Long Date 作為日期格式。

        將系統(tǒng)區(qū)域的長日期格式改為帶有星期幾的日期格式。

        再次執(zhí)行查詢語句,結(jié)果也被修改。

        總結(jié)

        Power BI 中的大部分日期格式跟 Windows 系統(tǒng)設(shè)置是有很大關(guān)系的,之前我們也介紹過如何修改 Power BI 中日期切片器的日期顯示格式,得出的結(jié)論也是受 Windows 系統(tǒng)區(qū)域設(shè)置影響。

        參考:PowerBI 深度解析:如何更改日期切片器的格式

        在 Power BI 中最常用的日期格式設(shè)置應(yīng)該是使用 DAX 生成日期表,但是大多數(shù)人在生成中文日期表時(shí)使用的是 MONTH 函數(shù)后跟月字符生成的月份名稱,因?yàn)?FORMAT 函數(shù)并不完全支持中文本地化。但是讀完本文你會(huì)發(fā)現(xiàn),雖然中文本地化參數(shù)無效,但是我們可以利用 OOOO 和 AAAA 去讀取本地格式的月份和星期,它會(huì)跟隨你的系統(tǒng)區(qū)域設(shè)置變化,這樣就能夠很好的顯示出中文格式的日期格式了。

        或者,你也可以使用 Power Query 來生成中文日期表,它支持日期格式中文化。

        參考:PowerQuery 日期表進(jìn)階:自定義日期字段格式

        如果你對(duì)本文的 Power BI 源文件感興趣可以私信老師了解領(lǐng)取方式。

        數(shù)據(jù)分析精英都在學(xué)習(xí)的五大能力境界

        分析師必備:業(yè)務(wù)數(shù)據(jù)分析能力五層成熟度路線圖框架全解


        ↓ 數(shù)據(jù)分析精英正在學(xué)習(xí)的課程 ↓

        他們是:企業(yè)老板,高管,CFO,分析...
        可以體驗(yàn)百萬級(jí)真實(shí)企業(yè)項(xiàng)目案例,徹底打通任督二脈


        數(shù)據(jù)分析師訓(xùn)練營 課程表


        時(shí)間:2024年06月 班
        主題:《業(yè)財(cái)分析之道》終極業(yè)財(cái)融合,分析師必備。[私信報(bào)名咨詢]

        數(shù)據(jù)分析 | Power BI | Tableau | FineBI
        企業(yè)咨詢 | 企業(yè)培訓(xùn) | 個(gè)人學(xué)習(xí) | 職業(yè)規(guī)劃
        咨詢老師,驗(yàn)證碼:data2024

        帶你徹底解鎖數(shù)據(jù)分析的力量

        點(diǎn)擊“閱讀原文”獲取更多資源

        瀏覽 276
        1點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        1點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 免费婬乱AAA大片女人 | jijiribi | 国内毛片 | 色婷婷粉嫩97在线A片 | 日本一曲二曲三曲小电影 |