在 Power BI Desktop 中使用自訂格式字串
適用於: Power BI Desktop Power BI 服務
在 Power BI Desktop 中使用自訂格式字串,您可以自訂欄位在視覺效果中的顯示方式,並確保您的報表看起來就像您想要的樣子。
格式字串有三個層級:
- 模型。 您可以為模型中的欄位設定格式字串,或使用 動態格式字串 來格式化量值。 除非由視覺效果或元素層級格式字串覆寫,否則在使用該欄位的任何位置都會套用格式字串。
- 視覺效果。 即使視覺效果上的任何資料行、量值或視覺效果計算上已經有格式字串,也可以在上面設定格式字串。 在此情況下,會覆寫模型層級格式字串,並使用視覺效果層級格式字串。 如果變更欄位上的彙總,從而導致先前設定的視覺效果層級格式字串失效,則會移除此格式字串。 欄位的視覺效果層級格式字串會針對欄位保存,但不會針對視覺效果計算保存。 如果在欄位上設定視覺效果層級格式字串,然後將該欄位移除並讀取到相同的視覺效果,則會恢復此視覺效果層級格式字串。 相反地,對於視覺效果計算,不會恢復格式字串。
- 元素。 可以設定資料標籤、新卡片特定元素和新交叉分析篩選器視覺效果的格式字串。 未來此層級將會擴大,以便納入更多對象。 在此處設定的任何格式字串會覆寫視覺效果和模型層級上設定的格式字串。
這些層級是階層式的,模型層級為最低層級,元素層級為最高層級。 在較高層級的資料行、量值或視覺效果計算上定義的格式字串會覆寫在較低層級上定義的格式字串。
由於視覺效果計算不在模型中,因此無法在模型層級上設定格式字串,但可以在視覺效果或元素層級上設定。 量值和資料行可以在所有三個層級上有格式字串:
等級 | 影響 | 適用對象 |
---|---|---|
元素 | 已選取視覺效果的已選取元素 | 量值、資料行、視覺效果計算 |
視覺效果 | 選取的視覺效果 | 量值、資料行、視覺效果計算 |
Model | 所有視覺效果、所有頁面、所有報表均採用同一模型 | 量值與資料列 |
元素層級格式字串目前僅適用於特定視覺效果和資料標籤。
如何使用自訂格式字串
若要使用自訂格式字串,必須先決定要處理哪個層級:模型、視覺效果或元素。
新增模型層級格式字串
若要在模型中建立自訂格式字串,請選取 [模型] 檢視中的欄位,然後選取 [屬性] 窗格中 [格式] 下的下拉式箭頭。
一旦從 [格式] 下拉式功能表中選取 [自訂] 之後,就可以從常用格式字串清單中進行選擇。
新增視覺效果層級格式字串
若要建立視覺效果層級格式字串,請先將欄位或視覺效果計算新增至視覺效果。 然後,選取視覺效果后,開啟 [格式] 窗格,然後移至 [格式] 窗格的 [一般] 區段。 找到 [格式資料] 設定,並在此處設定格式字串:
新增元素層級格式字串
若要建立元素層級格式字串,請開啟 [格式] 窗格,找到要設定格式之元素的格式字串區段。 請記住,並非所有元素都支援格式字串。 若要在資料標籤上設定格式字串,請開啟 [格式] 窗格的 [視覺效果] 區段,將 [資料標籤]>[值]>[顯示單位] 設定為自訂,然後輸入格式程式碼:
支援的自訂格式語法
自訂格式字串遵循 VBA 樣式語法 (VBA 在 Excel 和其他 Microsoft 產品中很常見),但並不支援其他產品中使用的所有語法。
注意
目前,視覺效果層級格式字串要求改為輸入 .NET 格式字串。 這是一個暫時性問題,將在未來的版本中解決。
下表定義 Power BI 中支援的語法。
支援的日期符號
符號 | 範圍 |
---|---|
日 | 1-31 (月中的日,沒有前置零) |
dd | 01-31 (月中的日,包含前置零) |
m | 1-12 (年中的月份,沒有前置零,從 1 月 = 1 開始) |
mm | 01-12 (年中的月份,包含前置零,從 1 月 = 01 開始) |
mmm | 顯示縮寫月份名稱 (回曆月份名稱沒有縮寫) |
mmmm | 顯示完整月份名稱 |
yy | 00-99 (年份的最後兩位數) |
yyyy | 100-9999 (三或四位數的年份) |
支援的時間符號
符號 | 範圍 |
---|---|
小時 | 0-23 (1-12,附加 "AM" 或 "PM") (一天的小時,沒有前置零) |
hh | 00-23 (01-12,附加 "AM" 或 "PM") (一天的小時,包含前置零) |
n | 0-59 (小時的分鐘,沒有前置零) |
nn | 00-59 (小時的分鐘,包含前置零) |
m | 0-59 (小時的分鐘,沒有前置零)。 只有在前面加上 h 或 hh 時 |
mm | 00-59 (小時的分鐘,包含前置零)。 只有在前面加上 h 或 hh 時 |
s | 0-59 (分鐘的秒,沒有前置零) |
ss | 00-59 (分鐘的秒,包含前置零) |
您可以查看有關如何設定自訂值字串格式的範例。
數字的使用者定義格式運算式可以有一到三個區段 (以分號分隔)。 如果在兩者之間包含分號且分號之間沒有任何內容,則不會顯示遺失的區段,而會看到 ""。 如果您未指定分號,則會使用肯定格式。
以下是不同值字串的不同格式範例:
值 | 格式字串 | 格式字串 | 格式字串 | 格式字串 |
---|---|---|---|---|
0.00;-0.0;"Zero" | 0.00;; | 0.00;-0.0; | 0.00; | |
-1.234 | -1.2 | "" | -1.2 | "" |
0 | "Zero" | "" | "" | 0.00 |
1.234 | 1.23 | 1.23 | 1.23 | 1.23 |
下表會識別預先定義的具名日期和時間格式:
格式名稱 | 說明 |
---|---|
一般日期 | 顯示日期和時間,例如 4/3/93 05:34 PM。 如果沒有小數部分,則只顯示日期,例如 4/3/93。 如果沒有整數部分,則只顯示時間,例如 05:34 PM。 日期顯示取決於您的系統設定。 |
完整日期 | 根據系統的完整日期格式來顯示日期。 |
簡短日期 | 使用系統的簡短日期格式來顯示日期。 |
完整時間 | 使用系統的完整時間格式顯示時間;包含小時、分鐘、秒。 |
簡短時間 | 顯示使用 24 小時格式的時間,例如 17:45。 |
具名數值格式
下表會識別預先定義的具名數值格式:
格式名稱 | 說明 |
---|---|
一般數字 | 不使用千位分隔符顯示數字。 |
貨幣 | 使用千位分隔符顯示數字。 在小數分隔符號的後面顯示兩位數。 輸出是以系統地區設定為基礎。 |
已修正 | 在小數分隔符號的前面顯示至少一位數,後面顯示至少兩位數。 |
標準 | 使用千位分隔符顯示數字,在小數分隔符號的前面顯示至少一位數字,後面顯示至少兩位數。 |
Percent | 顯示數字乘以 100,並使用百分比符號 (%)。 一律在小數分隔符號的後面顯示兩位數。 |
科學記號 | 使用標準科學記號標記法。 |
下表列出您可以用來建立使用者定義日期/時間格式的字元。
字元 | 說明 |
---|---|
(:) | 時間分隔符號。 在某些地區設定中,可能會使用其他字元來代表時間分隔符號。 時間分隔符號會在設定時間值格式時,分隔小時、分鐘和秒。 在格式化輸出中作為時間分隔符號使用的實際字元是由您的系統設定所決定。 |
(/) | 日期分隔符號。 在某些地區設定中,可能會使用其他字元來代表日期分隔符號。 日期分隔符號會在設定日期值格式時,分隔日、月和年。 在格式化輸出中用來作為日期分隔符號的實際字元,是由您的系統設定所決定。 |
d | 以無前置零的數字顯示月份日期 (1–31)。 |
dd | 以包含前置零的數字顯示月份日期 (01–31)。 |
ddd | 顯示星期幾縮寫 (Sun–Sat)。 當地語系化。 |
dddd | 顯示星期幾全名 (星期日–星期六)。 當地語系化。 |
m | 以無前置零的數字顯示月份 (1–12)。 如果 m 緊接在 h 或 hh 之後,則會顯示分鐘而非月份。 |
mm | 以包含前置零的數字顯示月份 (01–12)。 如果 m 緊接在 h 或 hh 之後,則會顯示分鐘而非月份。 |
mmm | 顯示月份縮寫 (Jan–Dec)。 當地語系化。 |
mmmm | 顯示完整月份名稱 (一月–十二月)。 當地語系化。 |
yy | 以兩位數數字顯示年份 (00–99)。 |
yyyy | 以四位數數字顯示年份 (100–9999)。 |
小時 | 以無前置零的數字顯示小時 (0–23)。 |
hh | 以包含前置零的數字顯示小時 (00–23)。 |
n | 以無前置零的數字顯示分鐘 (0–59)。 |
nn | 以包含前置零的數字顯示分鐘 (00–59)。 |
s | 以無前置零的數字顯示秒 (0–59)。 |
ss | 以包含前置零的數字顯示秒 (00–59)。 |
tt | 使用 12 小時制,並在中午之前的任何小時顯示大寫 AM;介於中午和下午 11:59 之間的任何小時顯示大寫 PM。 |
下表列出您可以用來建立使用者定義數字格式的字元。
字元 | 說明 |
---|---|
None | 不使用格式顯示數字。 |
( 0 ) | 數字預留位置。 顯示數字或零。 如果運算式在格式字串中出現 0 的位置有一個數字,則會顯示它。 否則,在該位置顯示零。 如果數字的位數少於格式運算式中的零 (小數的兩邊),則顯示前置零或後置零。 如果數字的位數多於小數分隔符號後面的零,則將數字四捨五入為等同於零位數的小數位數。 如果數字的位數多於小數分隔符號前面的零,則顯示額外的數字而不進行修改。 |
(#) | 數字預留位置。 顯示數字或不顯示。 如果運算式在格式字串中出現 # 的位置有一個數字,則顯示它;否則,在該位置不顯示任何內容。 此符號的作用類似零數字預留位置。 但如果數字位數等同或少於格式運算式中 # 字元的位數 (無論在小數分隔符號的任何一側),則不會在開頭或尾端顯示零。 |
(.) | 小數預留位置。 在某些地區設定中,會使用逗號做為小數分隔符號。 小數預留位置會決定小數分隔符號前面和後面顯示多少位數。 如果格式運算式只包含此符號左邊的數字記號,小於一的數字就會以小數分隔符號開頭。 若要顯示含有小數位數的前置零,請使用 0 作為小數分隔符號左邊的第一個數字預留位置。 在格式化輸出中用來作為小數預留位置的實際字元,取決於您的系統所辨識的數字格式。 |
(%) | 百分比預留位置。 運算式乘以 100。 百分比字元 ( % ) 會插入在其出現於格式字串中的位置。 |
(,) | 千位分隔符。 在某些地區設定中,會使用句點做為千位分隔符。 千位分隔符會在小數分隔符號左邊有四個以上位置的數字中,分隔百位數與千位數。 如果格式包含以數字預留位置 ( 0 或 # ) 括住的千位分隔符,則會指定千位分隔符的標準用法。 兩個相鄰千位分隔符號或與小數分隔符號左側相鄰的千位分隔符號 (無論是否指定小數位) 表示「將該數字除以 1000 以調整數值,並視需要進行四捨五入」。例如,您可以使用格式字串 "##0,,",將 1 億表示為 100。 小於一百萬的數字顯示為 0。 在小數分隔符號左側以外的任何位置中,兩個相鄰的千位分隔符會被視為指定使用千位分隔符。 在格式化輸出中做為千位分隔符的實際字元,取決於您的系統所能辨識的數字格式。 |
(:) | 時間分隔符號。 在某些地區設定中,可能會使用其他字元來代表時間分隔符號。 時間分隔符號會在設定時間值格式時,分隔小時、分鐘和秒。 在格式化輸出中作為時間分隔符號使用的實際字元是由您的系統設定所決定。 |
(/) | 日期分隔符號。 在某些地區設定中,可能會使用其他字元來代表日期分隔符號。 日期分隔符號會在設定日期值格式時,分隔日、月和年。 在格式化輸出中用來作為日期分隔符號的實際字元,是由您的系統設定所決定。 |
( 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、/ 和 :) 不能顯示為常值字元,數值格式字元 (#、0、%、E、e、逗號和句號),以及字串格式字元 (@、&、<、> 和 !)。 |
("ABC") | 將字串顯示在雙引號 (" ") 內。 |
考量與限制
- 無法為字串或布林值類型的欄位設定自訂格式字串。
相關內容
如需詳細資訊,請參閱