<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 3806字,需瀏覽 8分鐘

           ·

          2024-05-29 18:41

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

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

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

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

          原因

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

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

          這是什么原因呢?

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

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

          而西班牙語跟德語是完全本地化的語言包,所以西班牙語和德語的本地日期格式可以正確返回,而中文因為基礎語言還是 en-US,會返回符合美國日期格式的月份名稱。

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

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

          解決方法

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

          我們在 DAX 中嘗試一下。

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

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

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

          效果。

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

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

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

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

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

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

          總結

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

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

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

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

          參考:PowerQuery 日期表進階:自定義日期字段格式

          如果你對本文的 Power BI 源文件感興趣可以私信老師了解領取方式。

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

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


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

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


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


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

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

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

          點擊“閱讀原文”獲取更多資源

          瀏覽 276
          1點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          1點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人乱无码AV在线观看 | 日本黄色片一级视频 | 三级片精品播放 | 天天射夜夜 | 苍井空免费视频 |