共用方式為


在 Power BI Desktop 中使用自訂格式字串

適用於: Power BI Desktop Power BI 服務

Power BI Desktop 中使用自訂格式字串,您可以自訂欄位在視覺效果中的顯示方式,並確保您的報表看起來就像您想要的樣子。

Power BI Desktop 在模型檢視中的螢幕擷取畫面,其中醒目提示 [格式] 下拉式功能表中的 [自訂]。

格式字串有三個層級:

  • 模型。 您可以為模型中的欄位設定格式字串,或使用 動態格式字串 來格式化量值。 除非由視覺效果或元素層級格式字串覆寫,否則在使用該欄位的任何位置都會套用格式字串。
  • 視覺效果。 即使視覺效果上的任何資料行、量值或視覺效果計算上已經有格式字串,也可以在上面設定格式字串。 在此情況下,會覆寫模型層級格式字串,並使用視覺效果層級格式字串。 如果變更欄位上的彙總,從而導致先前設定的視覺效果層級格式字串失效,則會移除此格式字串。 欄位的視覺效果層級格式字串會針對欄位保存,但不會針對視覺效果計算保存。 如果在欄位上設定視覺效果層級格式字串,然後將該欄位移除並讀取到相同的視覺效果,則會恢復此視覺效果層級格式字串。 相反地,對於視覺效果計算,不會恢復格式字串。
  • 元素。 可以設定資料標籤、新卡片特定元素和新交叉分析篩選器視覺效果的格式字串。 未來此層級將會擴大,以便納入更多對象。 在此處設定的任何格式字串會覆寫視覺效果和模型層級上設定的格式字串。

這些層級是階層式的,模型層級為最低層級,元素層級為最高層級。 在較高層級的資料行、量值或視覺效果計算上定義的格式字串會覆寫在較低層級上定義的格式字串。

由於視覺效果計算不在模型中,因此無法在模型層級上設定格式字串,但可以在視覺效果或元素層級上設定。 量值和資料行可以在所有三個層級上有格式字串:

等級 影響 適用對象
元素 已選取視覺效果的已選取元素 量值、資料行、視覺效果計算
視覺效果 選取的視覺效果 量值、資料行、視覺效果計算
Model 所有視覺效果、所有頁面、所有報表均採用同一模型 量值與資料列

圖表,其中顯示三種可用的格式字串層級 (模型、視覺效果、元素)。圖中顯示視覺效果計算只能有視覺效果和元素層級格式字串,而量值和資料行可以有所有層級的格式字串。

元素層級格式字串目前僅適用於特定視覺效果和資料標籤。

如何使用自訂格式字串

若要使用自訂格式字串,您首先需要決定要處理的層級:模型、視覺或元素。

小提示

如果您看到非預期的尾碼,例如 K 或 M,它們來自視覺效果的 [顯示單位 ] 設定 (自動) ,而不是自訂格式字串本身,將 [顯示單位] 設定為 [無 ] 以顯示完整數字。

新增模型層級格式字串

若要在模型中建立自訂格式字串,請選取 [模型] 檢視中的欄位,然後選取 [屬性] 窗格中 [格式] 下的下拉式箭頭。

[屬性] 窗格的螢幕擷取畫面,其中醒目提示 [格式] 功能表。

一旦從 [格式] 下拉式功能表中選取 [自訂] 之後,就可以從常用格式字串清單中進行選擇。

[格式化] 功能表的螢幕擷取畫面,其中醒目提示 [自訂]。

新增視覺效果層級格式字串

若要建立視覺效果層級格式字串,請先將欄位或視覺效果計算新增至視覺效果。 然後,選取視覺效果后,開啟 [格式] 窗格,然後移至 [格式] 窗格的 [一般] 區段。 找到 [格式資料] 設定,並在此處設定格式字串:

視覺效果 [格式] 窗格螢幕擷取畫面,其中顯示[一般] 區段中的 [資料格式設定]。

注意

現在,您需要輸入 .NET 格式字串 ,而不是 VBA 格式字串。 這是一個暫時性問題,將在未來的版本中解決。

新增元素層級格式字串

若要建立元素層級格式字串,請開啟 [格式] 窗格,找到要設定格式之元素的格式字串區段。 請記住,並非所有元素都支援格式字串。 此外,元素層級 顯示單位 仍可套用自動 K/M/B 縮放,除非您將其設定為 「無」。 若要在資料標籤上設定格式字串,請開啟 [格式] 窗格的 [視覺效果] 區段,將 [資料標籤][值][顯示單位] 設定為自訂,然後輸入格式程式碼:>>

視覺效果 [格式] 窗格螢幕擷取畫面,其中顯示 [視覺效果] 區段中 [資料標籤] 的 [值]格式設定。

支援的自訂格式語法

自訂格式字串遵循 VBA 樣式語法 (VBA 在 Excel 和其他 Microsoft 產品中很常見),但並不支援其他產品中使用的所有語法。

注意

視覺格式字串目前使用 .NET 日期/時間及數值格式標記(暫時限制)。 這意味著大小寫很重要(M =月, m =分鐘)。 模型和元素層級自訂格式字串會使用下表所記載的 VBA 樣式權杖。 此限制將在未來版本中移除,因此所有層級都使用統一的語法。

排除意外的月份或分鐘值問題

如果自訂格式顯示您預期一個月的分鐘數:

  1. 請確認您是否在視覺層級套用了格式(目前使用的是 .NET 語法)。
  2. 如果是,請變更 mM for month,或將自訂格式字串移至模型層級,以使用 VBA 樣式 m
  3. 在 VBA 樣式的上下文中使用 nn 代表分鐘,以避免與月份符號混淆。

疑難排解不期望的自動縮放(K、M、B 後綴)

如果您的視覺效果顯示尾碼,例如 K (千)、M (百萬) 或 B (十億),即使您設定了自訂數字格式 (例如 #.####,##0),尾碼通常不是來自自訂格式字串。 它是由視覺效果或元素的 顯示單位 設定(自動縮放) 套用。

典型原因:

  • 顯示單位設定為Auto(預設)以供卡片、KPI、量測計、新卡片、篩選器值或資料標籤使用。
  • 已套用元素層級格式設定,但元素的顯示單位仍會自動調整。
  • 變更格式後重置的視覺計算或匯總(顯示單位已復原為自動)。

如何刪除 K/M/B 後綴:

  1. 選取視覺效果。
  2. 開啟 [格式] 窗格。
  3. 找出數值設定(例如一般資料格式視覺資料標籤圖說值的新卡片)。
  4. 顯示單位 (有時標示為單位或值單位) 設定為 (不是自動)。
  5. 重新套用 (或確認) 所需的自訂格式字串 (例如 #,##000.0#,##0.###)。

如果仍然存在:

  • 檢查是否有元素層級的覆寫設定,例如資料標籤設置,也設定為「自動」。
  • 確認您未在自訂格式中內嵌文字「K」(例如 0" K")。
  • 針對模型層級量值,請確定沒有 DAX 邏輯已調整值 (例如除以 1000)。

範例比較:

Setting 顯示單位 自訂格式 Result
卡片視覺效果 (預設) Auto #,##0 12K (縮放)
卡片視覺效果(已更改) None #,##0 11,732
資料標籤(叢集柱狀圖) Auto 0 12K
資料標籤 (叢集柱狀圖) None 0 11,732
新卡片 (數值格式) Auto 0.0" °C" 23.4K °C (不需要的)
新卡片(數值格式) None 0.0" °C" 23.4 °C

小提示

如果您想要自訂 縮寫 ,但不需要預設的 K/M/B 邏輯,請保留 顯示單位:無 ,並在格式字串中附加文字 (例如 0.0"k")。 這會保留原始數值精確度控制。

注意

根據值大小進行動態縮放(例如在無尾碼、K 和 M 之間切換)需要返回文字的量度(例如使用 FORMAT() 或條件式邏輯)或動態格式字串量度。 靜態自訂格式字串本身不會提供條件式尾碼邏輯。

下表定義 Power BI 中支援的語法。

支援的日期符號 (模型和元素層級所使用的 VBA 樣式語法)

下列符號適用於使用 VBA 樣式 (類似 Excel) 語法的自訂格式字串。

這很重要

視覺層級自訂格式字串暫時需要 .NET 格式字元 (請參閱下列附註)。 在 .NET 自訂日期/時間格式中,大寫 M 代表月份,小寫 m 代表分鐘。 在 VBA 樣式格式中(此處用於模型和元素級別),小寫 m 代表月份。 這種差異是造成混淆的常見來源。

Symbol 意義或輸出
d 沒有前導零的月份日期 (1-31)。
dd 前導零的月份日期 (01–31)。
m 沒有前導零的月份編號 (1-12)。 如果緊接在 hhh之後,則會解譯為分鐘 (請參閱後面的「分鐘符號」)。
mm 附前導零的月份數字 (01-12)。 如果緊接在 hhh 後出現,則會將其解釋為帶有前導零的分鐘數(00-59)。
mmm 縮寫月份名稱(1 月至 12 月)。 (回曆月名沒有縮寫。
mmmm 全月名稱(1 月至 12 月)。
yy 兩位數年份 (00–99)。
yyyy 四位數年份 (0001–9999)。

注意

如果您在預期的月份中看到非預期的分鐘值,請確認您是在視覺效果層級設定 (目前是 .NET 樣式) 或模型/元素層級設定 (VBA 樣式) 中輸入格式。

支援的時間符號 (VBA 樣式)

Symbol 意義或輸出
小時 沒有前導零的小時 (0-23)。 與 AM/PM 結合時,代表 1-12。
hh 前導零的小時 (00–23)。 當與 AM/PM 結合時,代表 01-12。
n 沒有前導零的分鐘 (0–59)。
nn 前導零的分鐘 (00–59)。
米/毫米 ALSO 分鐘(0–59 / 00–59)僅當其緊接在hhh之後時。 否則,它們會被視為月份符號(請參閱日期符號)。
s 第二名沒有前導零 (0-59)。
ss 第二,前導零 (00–59)。

小提示

請優先使用符號 n / nn 表示分鐘,以避免與月份符號 m / mm 產生歧義。

日期和時間範例

假設範例時間戳記:2025-09-04 15:07:08 (2025 年 9 月 4 日下午 3:07:08)。

格式字串 內容 (VBA 樣式與 .NET) 預期的輸出 註釋
月/日/年。 VBA 樣式(模型) 9/4/25 日期格式中,月份以數字表示;日期不加前導零。
MM/DD/YYYY VBA 樣式 (模型) 09/04/2025 前導零。
嗯,yyyy VBA 樣式 (模型) 2025 年 9 月 4 日 縮寫月份。
嗯嗯d VBA 樣式 (模型) 9 月 4 日 完整月份名稱。
h:nn:ss VBA 樣式 (模型) 15:07:08 用於 nn 避免月份歧義。
時:分:秒 VBA 樣式(模型) 15:7:8 m 解讀為分鐘(接在 h 之後)。
m VBA 樣式 (模型) 9 獨立的月份數字。
M .NET 視覺化層級 9 在 .NET 中,大寫 M = month。
m .NET 視覺效果層級 07 在 .NET 中,小寫 m = 分鐘。
月/日 混合誤用 (.NET 視覺層級) 07/04 如果使用者預期月/日,但顯示的是分鐘/天,這可能導致混淆。

注意

如果您看到您預期一個月(如 09)的分鐘值(例如 07),則您可能輸入了 。NET 風格的格式(視覺級別)認為它是 VBA 風格。 調整大小寫 (M vs m) 或將格式移至模型層級。

新增 Unicode 或特殊符號 (度數、貨幣、上標)

自訂格式字串不支援十六進位或逸出序列 (例如 \u00B0、 或 0xB0°)。 若要包含符號,請在引號文字內插入實際的 Unicode 字元(貼上/鍵入),如果它是尾文字,則針對某些數字格式可以不加引號。

Goal 格式字串 (模型/VBA 樣式) 輸出範例 註釋
在'攝氏'後加一個空格 0.0" °C" 23.4 °C 空格位於引號內,因此會保留。
新增百分比文字 (不是自動縮放) 0.00" pct" 12.34 pct 不同於 % 佔位符(其運算為乘以 100)。
顯示具有 KB 尾碼的數千個 0" KB" 512 KB 字面上的“KB”
具有明確符號的貨幣 #,##0.00" €" 1,234.00 € 如果需要動態符號,請偏好以地區設定為基礎的模型層級貨幣。
微秒標籤 0" µs" 15 µs 請貼上μ(U+00B5)。
無末尾單位的度數 0"°" 90° 沒有添加空間。
上標平方 0" m²" 25 m² 貼上 ² (U+00B2)。

小提示

若要插入符號:

  • Windows:按下 Win + . (表情符號/符號面板)或使用 ALT 碼(例如,按住 Alt,在數字鍵盤上鍵入 0176 以輸入 °)。
  • 從字元表複製/貼上。
    一旦文字位於格式字串中,它就會被視為純文字。

這很重要

Power BI 不會解析反斜線(\)、\uXXXX0xNN 跳脫字元模式,也不會將它們轉譯為自訂格式字串中的 Unicode。 使用角色本身。 對於視覺層級 (.NET) 格式,規則是相同的:在引號內包含實際字元 (例如 0.0" °C")。 反斜線只會逸出下一個字元;它不會建立 Unicode 序列。

注意

針對動態符號邏輯(例如,根據切片器選擇切換 °C/°F),請使用返回文字值的 DAX 度量或動態格式字串度量,而不是僅使用靜態自訂格式字串。

您可以查看有關如何設定自訂值字串格式的範例

數字的使用者定義格式運算式可以有一到三個區段 (以分號分隔)。 如果在兩者之間包含分號且分號之間沒有任何內容,則不會顯示遺失的區段,而會看到 ""。 如果您未指定分號,則會使用肯定格式。

以下是不同值字串的不同格式範例:

格式字串 格式字串 格式字串 格式字串
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,並使用百分比符號 (%)。 一律在小數分隔符號的後面顯示兩位數。
科學記號 使用標準科學記號標記法。

其他日期/時間格式字元

下列補充字元適用 (尚未涵蓋):

角色 Description
: 時間分隔符號 (地區設定特定)。
/ 日期分隔符號 (地區設定特定)。
tt AM/PM 標示(12 小時制,大寫)。

注意

已定義的其他日/月/年/小時/分鐘/秒標記會在模型/元素層級遵從 VBA 樣式語義,並在視覺層級遵循 .NET 語義(區分大小寫)。

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

角色 Description
None 不使用格式顯示數字。
0 數字預留位置。 顯示數字或零。 如果運算式在格式字串中出現 0 的位置有一個數字,則會顯示它。 否則,在該位置顯示零。 如果數字的位數少於格式運算式中的零 (小數的兩邊),則顯示前置零或後置零。 如果數字的位數多於小數分隔符號後面的零,則將數字四捨五入為等同於零位數的小數位數。 如果數字的位數多於小數分隔符號前面的零,則顯示額外的數字而不進行修改。
  }, 數字預留位置。 顯示數字或不顯示。 如果運算式在格式字串中出現 # 的位置有一個數字,則顯示它;否則,在該位置不顯示任何內容。 此符號的作用類似零數字預留位置。 但如果數字位數等同或少於格式運算式中 # 字元的位數 (無論在小數分隔符號的任何一側),則不會在開頭或尾端顯示零。
( . ) 小數預留位置。 在某些地區設定中,會使用逗號做為小數分隔符號。 小數預留位置會決定小數分隔符號前面和後面顯示多少位數。 如果格式運算式只包含此符號左邊的數字記號,小於一的數字就會以小數分隔符號開頭。 若要顯示含有小數位數的前置零,請使用 0 作為小數分隔符號左邊的第一個數字預留位置。 在格式化輸出中用來作為小數預留位置的實際字元,取決於您的系統所辨識的數字格式。
(%) 百分比預留位置。 運算式乘以 100。 百分比字元 ( % ) 會插入在其出現於格式字串中的位置。
( , ) 數千個分隔符。 在某些地區設定中,句點會用作千位分隔符號。 數字中有小數點左側有四位或更多位數時,千位數分隔符將千位與百位數字分隔開來。 如果格式包含以數字預留位置 ( 0# ) 包圍的千位分隔符號,則會指定千位分隔符號的標準使用。 兩個相鄰的千位分隔符或緊鄰小數點分隔符左側的千位分隔符(無論是否指定了小數點)表示“通過將數字除以 1000 來縮放數字,並根據需要四捨五入”。例如,您可以使用格式字串 “##0,” 將 100,000 表示為 100。 小於一百萬的數字顯示為 0。 兩個相鄰的千位分隔字元位於小數點分隔符號的左側以外的任何位置,只會被視為指定使用千位分隔符號。 在格式化輸出中用作千位分隔符號的實際字元取決於系統辨識的數字格式。
( : ) 時間分隔符號。 在某些地區設定中,可能會使用其他字元來代表時間分隔符號。 時間分隔符號會在設定時間值格式時,分隔小時、分鐘和秒。 在格式化輸出中作為時間分隔符號使用的實際字元是由您的系統設定所決定。
  }, 日期分隔符號。 在某些地區設定中,可能會使用其他字元來代表日期分隔符號。 日期分隔符號會在設定日期值格式時,分隔日、月和年。 在格式化輸出中用來作為日期分隔符號的實際字元,是由您的系統設定所決定。
E- E+ e- e+ 科學格式。 如果格式運算式在 E-、E+、e 或 e+ 的後面至少包含一個數字預留位置 (0# ),則該數字會以科學格式顯示,而 E 或 e 會插入到該數字和其指數之間。 數字預留位置的數目會決定指數中數字的數目。 使用 E- 或 e- 在負指數旁邊加上負號。 使用 E+ 或 e+ 在正指數旁邊加上加號。
- + $ ( ) 顯示這些字面符號。 任何其他 Unicode 字元 (°、€、μ、² 等) 都可以透過在雙引號中鍵入或貼上來包含 (例如 0.0" °C")。 僅在需要避免下一個字元被解釋時使用反斜線來轉義(不會引入十六進位或 \u 轉義)。
  }, 顯示格式字串中的下一個字元。 若要將有特殊意義的字元顯示為常值字元,請在其前面加上反斜線 (\)。 反斜線本身不會顯示。 使用反斜線與以雙引號括住下一個字元的方式相同。 若要顯示反斜線,請使用兩道反斜線 (\\)。 日期格式和時間格式字元 (a、c、d、h、m、n、p、q、s、t、w、/ 和 :) 不能顯示為常值字元,數值格式字元 (#、0、%、E、e、逗號和句號),以及字串格式字元 (@、&、<、> 和 !)。
("ABC") 將字串顯示在雙引號 (" ") 內。

考量與限制

  • 無法為字串或布林值類型的欄位設定自訂格式字串。

如需詳細資訊,請參閱