Share via


FORMAT 函數 (DAX) 的自訂數值格式

使用者定義的數值格式運算式可以有一到三個以分號隔開的區段。如果 Format 函數的 Style 引數含有一個預先定義的數值格式,則只允許有一個區段。

如果您使用

以下是結果:

只有一個區段

格式運算式套用至所有的值。

兩個區段

第一個區段套用至正值和零值,第二個區段套用至負值。

三個區段

第一個區段套用至正值,第二個區段套用至負值,第三個區段套用至零值。

格式規格

下表列出您可以用來建立使用者定義數值格式的字元。

格式規格

描述

顯示沒有格式的數字。

0 (零字元)

數字預留位置。顯示數字或零。如果運算式在格式字串中零出現的位置有數字,便會顯示該數字,否則,會在該位置顯示零 (0)。

如果格式運算式的數值 (在小數點任何一邊的) 數字位數比零少,便會在開頭或尾端顯示零 (0)。如果該數值小數點右邊的數字位數比格式運算式小數點右邊零的位數還多,便會將數值四捨五入到與零相同的小數位數。如果該數值小數點左邊的位數比格式運算式小數點左邊零的位數還多,便會顯示未經修改的額外位數。

#

數字預留位置。顯示數字或完全不顯示。如果運算式在格式字串中 # 字元出現的位置有數字,便會顯示該數字,否則,在該位置什麼都不顯示。

這個符號的運作方式就像零 (0) 數字預留位置,不同的是如果該數值在小數點任何一邊的位數,比格式運算式在小數點任何一邊的 # 字元位數少時,不會在開頭及尾端顯示零。

. (點字元)

小數預留位置。小數預留位置可決定在小數分隔符號左右兩邊所要顯示的數字位數。如果格式運算式在這個符號左邊只有 # 字元,則小於 1 的數值將以小數分隔符號為開頭。若要在小數點數字開頭顯示一個零,請使用零 (0) 做為小數點左邊的第一個數字預留位置。在某些地區設定中,是用逗號做為小數分隔符號。在格式化輸出中實際做為小數預留位置的字元,將依您的系統所能辨識的數值格式而異。因此,即使您的地區設定是使用逗號做為小數預留位置,也應該使用句號做為小數預留位置。格式化字串將會以該地區設定的正確格式顯示。

%

百分比預留位置。將運算式乘以 100。百分比字元 (%) 會插入格式化字串中該出現的位置。

, (逗號字元)

千位分節點。一個數值中小數分隔符號左邊有四位以上位數時,千位分節點可以用來區分百位以上的千位數字。如果格式中包含的千位分節點兩邊都使用數字預留位置 (0 或 #),則會指定千位分節點的標準用法。

小數分隔符號左邊 (不論有沒有指定小數) 緊接著一個千位分節點,或做為字串的最右邊字元,表示「將數值除以 1000 來進位,視需要四捨五入」。小於 1,000 但大於 500 的數值會顯示為 1,而小於 500 的數值則顯示為 0。在此位置的兩個相鄰千位分節點是以 1 百萬來進位,每加一個分節點代表因數 1,000。

緊接在小數分隔符號左邊或字串最右邊以外任何位置的多個分節點都會直接視為指定要使用千位分節點。在某些地區設定中,是用句號做為千位分節點。在格式化輸出中實際做為千位分節點的字元,將依您系統所能辨識的「數值格式」而異。因此,即使您的地區設定是使用句號做為千位分節點,也應該使用逗號做為千位分節點。格式化字串將會以該地區設定的正確格式顯示。

例如,請考慮以下三個格式化字串:

"#,0." 是使用千位分節點將數值 10 億格式為字串 "100,000,000"。

"#,0." 是使用一千做為因數進位,將數值 10 億格式為字串 "100000"。

"#,0." 是使用千位分節點並以一千做為因數進位,將數值 10 億格式為字串 "100,000"。

: (冒號字元)

時間分隔符號。在某些地區設定中,可能是使用其他字元來代表時間分隔符號。時間分隔符號會在格式化時間值時,區隔小時、分鐘和秒鐘。格式化輸出中實際做為時間分隔符號使用的字元取決於您的系統設定。

/ (正斜線字元)

日期分隔符號。在某些地區設定中,可能是使用其他字元來代表日期分隔符號。日期分隔符號會在格式化日期值時,區隔年、月、日。在格式化輸出中實際做為日期分隔符號使用的字元,是取決於您的系統設定。

E-E+e-e+

科學格式。如果格式運算式在 E-、E+、e- 或 e+ 的左邊含有至少一個數字預留位置 (0 或 #),數值會以科學格式顯示,然後在數值及其指數之間插入 E 或 e。左邊預留位置的數字位數會決定指數的數字位數。使用 E- 或 e- 會在負指數旁邊加上負號。使用 E+ 或 e+ 會在正指數旁邊加上正號。您也必須在這個符號右邊包含數字預留位置,才能取得正確的格式。

-+$()

常值字元。這些字元會完全按照輸入顯示在格式化字串中。若要顯示未列出的字元,請在該字元前面加上一個反斜線 (\) 或以雙引號 (" ") 括住該字元。

\ (反斜線字元)

在格示字串中顯示下一個字元。若要將有特殊義意的字元顯示為常值字元,請在該字元前面加上一個反斜線 (\)。反斜線本身不會顯示。使用反斜線就跟使用雙引號把反斜線後面的字元括起來是一樣的。若要顯示一個反斜線,請使用兩個反斜線 (\\)。

無法顯示為常值字元的字元範例包括日期格式和時間格式字元 (a、c、d、h、m、n、p、q、s、t、w、y、/ 和 :)、數值格式字元 (#、0、%、E、e、逗號和句號),以及字串格式字元 (@、&、<、> 和 !)。

"ABC"

顯示雙引號 ("") 內的字串。若要在程式碼中包含格式引數中的字串,必須使用 Chr(34) 括住該文字 (34 代表雙引號 (") 的字元碼)。

下表列出一些數值的範例格式運算式 (這些範例全都假設您系統的地區設定是「英文-美國」)。第一欄包含 Format 函數的格式化字串,其他欄則包含所產生的輸出 (如果格式化資料具有欄標題中提供的值)。

Format (Style)

"5" 格式化為

"5" 格式化為

"0.5" 格式化為

"0" 格式化為

零長度字串 ("")

5

-5

0.5

0

0

5

-5

1

0

0.00

5.00

-5.00

0.50

0.00

#,##0

5

-5

1

0

$#,##0;($#,##0)

$5

($5)

$1

$0

$#,##0.00;($#,##0.00)

$5.00

($5.00)

$0.50

$0.00

0%

500%

-500%

50%

0%

0.00%

500.00%

-500.00%

50.00%

0.00%

0.00E+00

5.00E+00

-5.00E+00

5.00E-01

0.00E+00

0.00E-00

5.00E00

-5.00E00

5.00E-01

0.00E00

"$#,##0;;\Z\e\r\o"

$5

$-5

$1

零 (0)

備註

如果您使用了多個分號而之間沒有任何項目,遺漏的區段會以正值的格式顯示。