FORMAT

適用於:導出數據行計算數據表Measure視覺計算

根據指定的 format,將 value 轉換成文字。

語法

FORMAT(<value>, <format_string>[, <locale_name>])

參數

術語 定義
value 評估為單一 value的 valueor 表示式。
format_string 具有格式化範本的字串。
locale_name (選擇性)函式所要使用的地區設定名稱。 可能的 values 是 Windows API 函式接受的字串,LocaleNameToLCID()

傳回 value

字串,包含格式化為 value所定義的 format_string

注意

If value 為 BLANK,函式會傳回空字串。

If format_string 是 BLANK,value 會格式化為「一般數位」or「一般 Date」format(根據 value 數據類型)。

言論

  • 預先定義的 format 字串在格式化結果時,會使用模型文化特性屬性。 根據預設,模型文化特性屬性會根據計算機的用戶地區設定來設定。 針對新的 Power BI Desktop 模型,可以在 [選項] > [區域設定] > [模型語言] 中變更模型文化特性屬性。 針對 Analysis Services,模型文化特性會根據實例最初定義的 Language 屬性來設定。

  • DAX FORMAT 函式自變數支援的 format 字串是以 Visual Basic (OLE Automation) 所使用的 format 字串為基礎,not .NET Framework 所使用的 format 字串串。 因此,您可能會在自變數不符合任何定義的 errorifformat 字串 or 取得非預期的結果。 例如,不支援 「p」 作為 「Percent」 的縮寫。 您提供做為 FORMAT 函式自變數的字串,未包含在預先定義的 format 字串清單中,會當作自定義 format 字串的一部分來處理,or 為字元串常值。

  • 若要深入瞭解使用 FORMAT指定地區設定,請參閱此 影片

  • 使用 FORMAT 會將 measure 結果變更為文字數據類型。 If measure 結果原本是數值數據類型,然後使用 FORMAT時,measure 無法在 values 區段需要數值數據類型的視覺效果上使用,例如圖表。 在 Power BI 中,您也可以針對量值使用 動態 format 字串, 指定條件式 format 字串,以維護 measure的數值數據類型。

  • 在匯出數據行中使用 or 數據列層級安全性 (RLS) 規則時,支援此函式 not 用於 DirectQuery 模式。

例子

Format 字串

= FORMAT( 12345.67, "General Number")
= FORMAT( 12345.67, "Currency")
= FORMAT( 12345.67, "Fixed")
= FORMAT( 12345.67, "Standard")
= FORMAT( 12345.67, "Percent")
= FORMAT( 12345.67, "Scientific")

返回:

12345.67「一般數位」會顯示沒有格式的數位。

$12,345.67 “Currency” 顯示數位與 currency 地區設定格式。 此處 sample 會顯示預設的美國 currency 格式設定。

12345.67 “Fixed” 會顯示至少一位數給小數分隔符的 left,and 兩位數的小數分隔符 right。

12,345.67 「標準」,left 小數分隔符的 left 至少顯示一位數,and 小數分隔符的 right,and 包含千位分隔符。 此處 sample 顯示預設的美國數位格式設定。

1,234,567.00 % “Percent” 會將數字顯示為百分比(乘以 100),格式設定 and 以單一空格分隔之數位 rightsign 百分比。

1.23E+04 “Scientific” 會以兩個十進位數的科學表示法顯示數位。

具有選擇性locale_name的日期時間

= FORMAT( dt"2020-12-15T12:30:59", BLANK(), "en-US" ) 
= FORMAT( dt"2020-12-15T12:30:59", BLANK(), "en-GB" ) 
= FORMAT( dt"2020-12-15T12:30:59", "mm/dd/yyyy", "en-GB" )

返回:

2020/12/15 下午 12:30:59 其中 month 前面 dayandtime 是 12-hourformat。

2020/15/12 12:30:59 其中 day 在 monthandtime 之前是 24-hourformat。

12/15/2020 12:30:59 其中 month 前面 dayandtime 為 24-hourformat。 因為指定了非地區設定相依 format 字串,因此會 not 套用地區設定,and 傳回非地區設定 format。

預先定義的數值格式

您可以在 format_string 自變數中指定下列預先定義的數值格式:

Format 描述
"General Number" 顯示沒有千位分隔符的數位。
"Currency" 顯示具有千位分隔符的數位,if 適當;顯示小數分隔符 right 的兩位數。 輸出是以系統地區設定為基礎。
"Fixed" 在小數分隔符 right,至少顯示一位數給 leftand 兩位數。
"Standard" 顯示具有千位分隔符的數位,leftand 兩位數至小數分隔符 right 至少一位數。
"Percent" 顯示數位乘以 100,sign (%) 會立即附加至 right;一律會在小數分隔符的 right 顯示兩位數。
"Scientific" 使用標準科學表示法,提供兩個有效位數。
"Yes/No" 顯示無 if 數位為0;否則,會顯示 [是]。
"True/False" 顯示 Falseif 數位為0;否則,會顯示 True。
"On/Off" 顯示關閉 if 數位為 0;否則,會顯示 [開啟]。

自訂數值格式

數位的自定義 format 表示式可以有一到三個區段,並以分號分隔。 If format 字串自變數 contains 其中一個具名數值格式,則只允許一個區段。

您使用 If 結果為
僅限一個區段 format 表示式適用於 allvalues。
兩個區段 first 區段適用於正 valuesand 零,second 為負 values。
三個區段 first 區段適用於正 values,second 為負 values,and 第三個至零。
"$#,##0;($#,##0)"

If 您包含的分號與它們之間沒有任何專案,則會使用正 value的 format 來定義遺漏的區段。 例如,下列 format 使用 first 區段中的 format 顯示正 and 負 values,and 在 value 為零 if 顯示 “Zero”。

"$#,##0"

If 您包含的分號與它們之間沒有任何專案,則會使用正 value的 format 來顯示遺漏的區段。

自訂數值 format 字元

您可以在 format_string 自變數中指定下列自訂數值 format 字元:

字元 描述
None 顯示沒有格式的數位。
0 數位佔位元。 or 零顯示數位。 If 表示式在 0 出現在 format 字串中的位置具有數位,請加以顯示;否則,在該位置顯示零。If 數位的位數比 format 運算式中零(小數點的任一邊)少,則顯示前置 or 尾端零。 If 數位的小數分隔符 right 位數比 format 表示式中小數分隔符的 right 零,round 數位到零的十進制數。 If 小數分隔符的 left 位數比 format 表示式中小數分隔符 left 的零數多,則顯示額外的數位而不修改。
# 數位佔位元。 or 不顯示數位。 If 表示式的位置中有數位,其中 # 出現在 format 字串中,顯示它;否則,不在該位置顯示任何內容。 此符號的運作方式就像 0 位數佔位元,exceptand 尾端零沒有顯示,if 數位的位數與 format 表達式中小數分隔符任一邊的位數相同 or 數。
. 十進位元元。 在某些地區設定中,會使用逗號做為小數分隔符。 小數佔位元元會決定小數分隔符 leftandright 顯示多少位數。 If format 表示式只 contains 這個符號 left 的數位符號,小於 1 的數位會以小數分隔符開頭。 若要顯示以小數表示的前置零,請使用 0 做為小數分隔符的 first 位數佔位元 left。 格式化輸出中做為小數佔位元的實際字元取決於您系統所辨識的數位 Format。
% 百分比佔位元。 表達式乘以 100。 百分比字元 (%) 會插入出現在 format 字串中的位置。
, 千位分隔符。 在某些地區設定中,句點會當做千位分隔符使用。 千位分隔符會將數千個分隔符與具有四個 or 多個位置的數位中,與小數分隔符的 left 區隔千。 if 以數位佔位元元括住的千位分隔符0or#括住的千位分隔符 ifformatcontains 指定標準使用千位符。 兩個相鄰的千位分隔符會立即 or 千位分隔符到小數分隔符的 left(是否指定了小數點 ornot),表示「視需要將數位除以 1000 來縮放數位」。例如,您可以使用 format 字串 “##0”,將 1 億表示為 100。 小於1百萬的數字會顯示為0。 除了緊接在小數分隔符 left 以外的任何位置,兩個相鄰的千位分隔符會被視為指定千位分隔符的使用方式。 格式化輸出中用來做為千位分隔符的實際字元取決於您系統所辨識的數位 Format。
: Time 分隔符。 在某些地區設定中,其他字元可用來表示 time 分隔符。 當格式化 timevalues 時,time 分隔符會分隔小時、分鐘、and 秒。 格式化輸出中作為 time 分隔符的實際字元是由系統設定決定。
/ Date 分隔符。 在某些地區設定中,其他字元可用來表示 date 分隔符。 當格式化 datevalues 時,date 分隔符會分隔 day、month、andyear。 格式化輸出中作為 date 分隔符的實際字元是由系統設定決定。
E- E+ e- e+ 科學 format。 If format 表達式 contains 至少一個數位佔位元(0or#)到 E-、E+、e、or e+的 right,數位會顯示在科學 formatand E or e 之間 and 指數之間。 right 的數位佔位元元數目會決定指數中的位數。 使用 E- or e- 將減號 signnext 放在負指數。 使用 E+ or e+ 將減號 signnext 放在負指數 and 加號 signnext 為正指數。
- + $ ( ) 顯示常值字元。 若要顯示其中一個以外的字元,請在其前面加上反斜杠(\),or 以雙引號括住它(“ )。
\\ 在 format 字串中顯示 next 字元。 若要將具有特殊意義的字元顯示為常值字元,請在字元前面加上反斜杠(\)。 不會顯示反斜杠本身。 使用反斜杠與以雙引號括住 next 字元相同。 若要顯示反斜杠,請使用兩個反斜杠(\\)。 無法顯示為常值字元的字元範例是 date-formatting andtime-formatting 字元 (a, c, d, h, m, n, p, q, s, t, w, y, /, and :), 數值格式字符 (#, 0, %, E, e, 逗號, and 句號), and 字符串格式字元 (@, &, <, >, and !)。
(“ABC”) 在雙引號內顯示字串 (“ ” “ ) 。

預先定義的 date/time 格式

下列預先定義的 date/time 格式可以在 format_string 自變數中指定。 使用這些以外的格式時,它們會解譯為自訂 date/timeformat:

Format 描述
"General Date" 顯示 dateand/ortime。 例如,2008/3/12 上午 11:07:31。 Date 顯示是由您應用程式的目前文化特性 value所決定。
"Long Date" or "Medium Date" 根據您目前文化特性的長 dateformat顯示 date。 例如,2008 年 3 月 12 日星期三。
"Short Date" 使用您目前文化特性的簡短 dateformat來顯示 date。 例如,2008 年 3 月 12 日。
"Long Time" or 使用您目前文化特性的長 timeformat來顯示 time;通常包括小時、分鐘、秒。 例如,上午 11:07:31。
"Medium Time" 在 12 hourformat中顯示 time。 例如,上午 11:07。
"Short Time" 在 24 hourformat中顯示 time。 例如,11:07。

自訂 date/time 格式

您可以在 format_string 中指定下列 format 字元,以建立自訂 date/time 格式:

字元 描述
: Time 分隔符。 在某些地區設定中,其他字元可用來表示 time 分隔符。 當格式化 timevalues 時,time 分隔符會分隔小時、分鐘、and 秒。 格式化輸出中作為 time 分隔符的實際字元是由系統設定決定。
/ Date 分隔符。 在某些地區設定中,其他字元可用來表示 date 分隔符。 當格式化 datevalues 時,date 分隔符會分隔 day、month、andyear。 格式化輸出中作為 date 分隔符的實際字元是由系統設定決定。
\ 反斜線。 將 next 字元顯示為常值字元。 因此,not 解譯為格式化字元。
" 雙引號。 以雙引弧括住的文字隨即顯示。 因此,not 解譯為格式化字元。
c 將 date 顯示為 dddddand 依該順序將 time 顯示為 ttttt。 if 沒有 date 序號的小數部分,只顯示 date 資訊;if 沒有整數部分,只顯示 time 資訊。
d 將 day 顯示為沒有前置零的數位(1-31)。
dd 將 day 顯示為具有前置零的數位(01-31)。
ddd 將 day 顯示為縮寫 (Sun-Sat)。 當地語系化。
dddd 將 day 顯示為全名 (Sunday-Saturday)。 當地語系化。
ddddd 根據系統的簡短 dateformat 設定,將 date 顯示為完整 date(包括 day、month、andyear)。 預設的簡短 dateformat 為 mm/dd/yyyy
dddddd 根據系統所辨識的長 date 設定,將 date 序號顯示為完整 date(包括 day、month、andyear)。 默認長 dateformat 為 dddd, mmmm d, yyyy
w 將一周的 day 顯示為數位(1 代表星期六到 7 日)。
ww 將 year 周顯示為數位(1-54)。
m 將 month 顯示為沒有前置零的數位(1-12)。 If m 會緊接著 horhh,minute 而不是顯示 month。
mm 將 month 顯示為具有前置零的數位(01-12)。 If mm 會緊接著 horhh,minute 而不是顯示 month。
mmm 將 month 顯示為縮寫 (Jan-Dec)。 當地語系化。
mmmm 將 month 顯示為完整 month 名稱 (January-December)。 當地語系化。
q 將 year 的 quarter 顯示為數位 (1-4)。
y 將 year 的 day 顯示為數位 (1-366)。
yy 將 year 顯示為2位數的數位(00-99)。
yyyy 將 year 顯示為 4 位數的數位(100-9999)。
h 將 hour 顯示為沒有前置零的數位(0-23)。
hh 將 hour 顯示為具有前置零的數位(00-23)。
n 將 minute 顯示為沒有前置零的數位(0-59)。
nn 將 minute 顯示為具有前置零的數位(00-59)。
s 將 second 顯示為沒有前置零的數位(0-59)。
ss 將 second 顯示為具有前置零的數位(00-59)。
ttttt 使用系統所辨識 timeformat 所定義的 time 分隔符,將 time 顯示為完整 time(包括 hour、minute、andsecond)。 and 上午 10:00 ortime 下午 10:00 之前選取前置零選項,就會 if 顯示前置零。預設 timeformat 為 h:mm:ss
AM/PM 使用 12-hour 時鐘 and 在中午前顯示任何 hour 的大寫 AM;在中午 and 下午 11:59 之間顯示任何 hour 的大寫 PM。
am/pm 使用 12-hour 時鐘 and 顯示小寫 AM 與中午前的任何 hour;顯示小寫 PM,中午 and 下午 11:59 之間任何 hour。
A/P 使用 12-hour 時鐘 and 在中午前顯示任何 hour 的大寫 A;在中午 and 下午 11:59 之間顯示任何 hour 的大寫 P。
a/p 使用 12-hour 時鐘 and 顯示小寫 A,且任何 hour 中午前;顯示小寫 P,中午 and 下午 11:59 之間有任何 hour。
AMPM 使用 12-hour 時鐘 and 顯示系統在中午前具有任何 hour 定義的 AM 字串常值;在中午 and 下午 11:59 之間的任何 hour,顯示系統所定義的 PM 字串常值。AMPM 可以是大寫 or 小寫,但顯示的字串大小寫符合系統設定所定義的字元串。 默認 format 為AM/PM。 If 系統設定為 24-hour 時鐘,字串通常會設定為空字串。

Date/time 格式會使用目前的用戶地區設定來 format 字串。 例如,請考慮 2020 年 6 月 25 日 date。 當使用 format 字串 “m/d/yyyy” 格式化時,它將會是:

  • 用戶地區設定是美國 (en-US): “6/25/2020”
  • 用戶地區設定為德國 (de-DE):“6.25.2020”

自訂 date/timeformat 範例

下列範例使用 2020 年 6 月 25 日星期四下午 1:23:45 date/time。 德國(de-DE)使用24hour 系統。 沒有相當於AM/PM。

Format 結果 (en-US) 結果 (de-DE)
"c" 06/25/2020 13:23:45 25.06.2020 13:23:45
"d" 25 25
"dd" 25 25
"ddd" Thu
"dddd" 星期四 Donnerstag
"ddddd" 06/25/2020 25.06.2020
"dddddd" 2020 年 6 月 25 日星期四 唐納斯塔格, 25. Juni 2020
"w" 5 5
"ww" 26 26
"m" 6 6
"mm" 06 06
"mmm" 六月 六月
"mmmm" 六月 朱尼
"q" 2 2
"y" 177 177
"yy" 20 20
"yyyy" 2020 2020
"""Year"" yyyy" Year 2020 Year 2020
"yyyy \Qq" 2020 年第 2 季 2020 年第 2 季
"dd/mm/yyyy" 25/06/2020 25.06.2020
"mm/dd/yyyy" 06/25/2020 06.25.2020
"h:nn:ss" 13:23:45 13:23:45
"h:nn:ss AMPM" 下午 1:23:45 1:23:45
"hh:nn:ss" 13:23:45 13:23:45
"hh:nn:ss AMPM" 下午 01:23:45 01:23:45
"ttttt" 13:23:45 13:23:45
"ttttt AMPM" 下午 13:23:45 13:23:45
"mm/dd/yyyy hh:nn:ss AMPM" 06/25/2020 下午 01:23:45 6.25.2020 01:23:45