PowerBI DAX 自定義格式字符串

PowerBI 中對(duì)數(shù)據(jù)設(shè)置格式是一個(gè)常見(jiàn)的需求。這里要使用自定義格式字符串。
PowerBI DAX 的格式化字符串并不是一個(gè)簡(jiǎn)單的話題,我們用一個(gè)篇章來(lái)介紹其中的規(guī)律。后續(xù)的內(nèi)容會(huì)進(jìn)一步擴(kuò)展到復(fù)雜的應(yīng)用中。
什么是自定義格式字符串
格式字符串,是用來(lái)指定值顯示的方式的。值可以是數(shù)字,文本,日期等。
例如,有一個(gè)數(shù)字是:12345.67892,我們想顯示成:12,345.69,這有兩種做法:
第一種方法,將原有值改寫成字符串,那么結(jié)果是這個(gè)字符串;
第二種方法,將原有值改變顯示樣式,那么結(jié)果還是原來(lái)的值。
它們的區(qū)別在于:
第一種方法,可以用 FORMAT 函數(shù)實(shí)現(xiàn),在表格導(dǎo)出時(shí)是文本,無(wú)法在 Excel 中繼續(xù)處理;
第二種方法,使用系統(tǒng)內(nèi)置的格式,在表格導(dǎo)出時(shí)將保持原有值,可以在 Excel 中繼續(xù)運(yùn)算。
Excel 中的格式化字符串
格式化字符串,不是一個(gè)新技術(shù),而有著成熟的歷史,在 Excel 中就有這個(gè)內(nèi)容,如下:

可以看到這些就是自定義數(shù)字格式。
Excel 對(duì)自定義數(shù)字格式的三大支持:
第一種:自定義格式
第二種:三段式支持,包括:>0;=0,<0 分別顯示的格式
第三種:條件支持,包括:顏色和大小范圍
對(duì)于第三種,很多人并不知道,如下:

這里的數(shù)字 -21 的顏色并非設(shè)置所致,而是自定義數(shù)字格式,如下:

可以看出,自定義數(shù)字格式,有強(qiáng)大的能力,其本質(zhì)在于:
不改變值的結(jié)果下,設(shè)置其顯示的樣式。
PowerBI 對(duì)自定義數(shù)字格式的支持
PowerBI 提供了對(duì)自定義數(shù)字格式的支持,但僅僅限于前兩種形態(tài),即:
第一種:自定義格式
第二種:三段式支持,包括:>0;<0;=0 分別顯示的格式
在 2020年12月 版本(含)后的 Power BI Desktop 中,可以直接在度量值的設(shè)置文本框中改寫。如下:

如果將這里設(shè)置為:【0.0】,那么有:

如果將這里設(shè)置為:【#,#0.0】,那么有:

如果將這里設(shè)置為:【#,#0.0;(#,#0.0);】,當(dāng) [KPI] = 0 時(shí),有:

當(dāng) [KPI] < 0 時(shí),有:

細(xì)致的伙伴可能會(huì)發(fā)現(xiàn):這里是不能控制顏色的,沒(méi)有錯(cuò)。對(duì)于顏色的控制,需要使用條件格式來(lái)進(jìn)行。
綜上,
第一種:自定義格式
第二種:三段式支持,包括:>0;<0;=0 分別顯示的格式
要注意的是:第二種的不同段間顯示的設(shè)置對(duì)應(yīng)于與 0 的大小關(guān)系,第一段是 >0 ,第二段是 <0 ,第三段是 =0 。
又如:

自定義數(shù)字格式還可以輕松設(shè)置百分比等格式,各種日期格式也可以設(shè)置。
在 PowerBI 中使用自定義數(shù)字格式
Excel 作為全球商業(yè)智能軟件的事實(shí)標(biāo)準(zhǔn),自定義數(shù)字格式用于了 Excel 以及 VBA 長(zhǎng)達(dá)多年,Power BI 中的同樣需求必定以同樣的方式來(lái)實(shí)現(xiàn)是非常合理的。那么,Power BI 的自定義數(shù)字格式是與 Excel 以及 VBA 的設(shè)置一樣的。但在功能方面,是 Excel 功能的有限子集。
有了自定義數(shù)字格式,這讓我們思考一些通用問(wèn)題:
如何實(shí)現(xiàn)千分位分隔符,本文已示范
如何實(shí)現(xiàn)百分比,本文已示范
如何實(shí)現(xiàn)零值不顯示,本文已示范
對(duì) DAX FORMAT 函數(shù)熟悉的伙伴可能會(huì)思考這與 FORMAT 的區(qū)別在哪里,本文已經(jīng)給出答案,用自定義數(shù)字格式的好處有兩個(gè):
保持值不變,僅僅改變顯示樣式,表格數(shù)據(jù)導(dǎo)出為 .csv 文件后,可以在 Excel 中繼續(xù)以數(shù)字進(jìn)行計(jì)算處理,而非文本;
這種做法相比于 FORMAT 的條件顯示不需要多次 SWITCH 判斷,有利于性能優(yōu)化。
在這方面的官方參考文檔,嚴(yán)格遵守:
https://docs.microsoft.com/zh-cn/power-bi/create-reports/desktop-custom-format-strings
實(shí)戰(zhàn)應(yīng)用
結(jié)合上述內(nèi)容,可以思考:
如何實(shí)現(xiàn) K(千) M(百萬(wàn)) B(十億)的自動(dòng)顯示切換,效果如下:

該效果非常有用,可以將很小和很大的數(shù)字放在一起顯示且自動(dòng)加入合理的縮放單位。即使是制作圖表,也可以得到有意義的顯示,如下:

提示:可以借助本文的說(shuō)明 + 計(jì)算組 + 官方文檔實(shí)現(xiàn),具有全局通用性。
總結(jié)
自定義格式字符串,是高級(jí) PowerBI 應(yīng)用中的基礎(chǔ)物件,我們將使用這一特性構(gòu)建高級(jí)能力,因此,理解和掌握自定義格式字符串是這些高級(jí)內(nèi)容的前序內(nèi)容。
在訂閱了BI佐羅講授的《BI進(jìn)行時(shí)》課程區(qū),除了可以下載本文案例,還可以觀看視頻講解。

讓數(shù)據(jù)真正成為你的力量
Create value?through?simple and?easy?with fun?by PowerBI
Excel BI?|?DAX Pro?|?DAX?權(quán)威指南?|?線下VIP學(xué)習(xí)
掃碼與PBI精英一起學(xué)習(xí),驗(yàn)證碼:data2021
PowerBI MVP 帶你正確而高效地學(xué)習(xí) PowerBI
點(diǎn)擊“閱讀原文”,即刻開(kāi)始
