建立量值的動態格式字串
適用於: Power BI Desktop Power BI 服務
藉由量值的動態格式字串,您可以透過有條件地套用具有單獨 DAX 運算式的格式字串來確定量值在視覺效果中的顯示方式。
注意
量值的動態格式字串目前為預覽狀態。 在預覽狀態時,功能和文件可能會變更。
動態格式字串克服了使用 FORMAT 函式的固有缺點。 也就是說,藉由 FORMAT,即使是數值資料類型也會以字串形式返回,這可能不適用於需要數值的視覺效果,如圖表。 使用動態格式字串時,量值會保持其資料類型,而不會強制變更為字串資料類型。 這將根據內容對量值套用不同的格式字串。
動態格式字串也可以與計算群組搭配使用。 與計算群組搭配使用的 DAX 模式也可以在量值的動態格式字串中使用,但範圍僅限於個別量值,而非模型中的所有量值。 若要深入了解,請參閱 計算群組 - 動態格式字串。
建立動態格式字串
若要建立動態格式字串
在 [資料] 窗格中,選取要為其指定動態格式字串的量值。
在 [度量工具] >功能區 [格式化] >區段 [格式] 清單方塊中,選取 [動態]。 DAX 公式列左側將出現已選取 [格式] 的新清單方塊。 此下拉式清單用來在靜態量值 DAX 運算式和動態格式字串 DAX 運算式之間進行切換。 無論在切換到動態之前使用了什麼靜態格式字串,都會在 DAX 公式列中作為字串預先填入。
用 DAX 運算式覆寫字串,該運算式為您的量值輸出正確的格式字串。 例如,以下運算式從「國家/地區貨幣格式字串」資料表中查詢所需的貨幣格式字串:
確認您的動態格式字串可在視覺效果中運作。
若要删除動態格式字串並傳回使用靜態格式字串,請在 [格式化] >區段的 [格式] 清單方塊中選取其他格式選項。 由於此動作無法復原,因此會出現一個對話框,詢問您是否要繼續。 如果您想要返回以再次使用動態格式字串,則必須重新輸入 DAX 運算式。
範例
了解新功能的最佳方式是親自嘗試。 您可以使用 DAX 範例模型中提供的範例 Adventure Works 2020 PBIX 檔案直接嘗試。 透過使用範例模型,您可以新增貨幣轉換,以依年份顯示轉換後的銷售金額。 下載後,在 Power BI Desktop 中開啟檔案。
建立新資料表
範例模型不包含建立和使用動態格式字串所需的所有資料。 若要開始,您首先需要新增兩個資料表。
在 [常用] 功能區上,選取 [輸入資料]。
在 [建立資料表] 對話方塊中,輸入以下表格名稱,然後複製並貼上以下資料表:
資料表名稱:國家/地區貨幣格式字串
Country 貨幣 格式 澳洲 美元 AU$#,0.00 Canada 美元 C$#,0.00 丹麥 挪威克朗 kr#,0 歐元區 歐元 € #,0.00 日本 日圓 ¥ #,0 瑞典 瑞典克朗 kr#,0 瑞士 瑞士法郎 CHF#,0.00 英國 磅 £ #,0 美國 美元 US$#,0.00 確認資料表看起來正確,然後按一下 [載入]。
對以下資料表重複之前的步驟:
表格名稱:年平均匯率
Country 貨幣 Year 年平均匯率 澳洲 美元 2022 1.442 澳洲 美元 2021 1.332 澳洲 美元 2020 1.452 澳洲 美元 2019 1.439 澳洲 美元 2018 1.34 澳洲 美元 2017 1.358 Canada 美元 2022 1.301 Canada 美元 2021 1.254 Canada 美元 2020 1.341 Canada 美元 2019 1.327 Canada 美元 2018 1.297 Canada 美元 2017 1.35 丹麥 挪威克朗 2022 7.077 丹麥 挪威克朗 2021 6.29 丹麥 挪威克朗 2020 6.538 丹麥 挪威克朗 2019 6.67 (機器翻譯) 丹麥 挪威克朗 2018 6.319 丹麥 挪威克朗 2017 6.864 歐元區 歐元 2022 0.951 歐元區 歐元 2021 0.846 歐元區 歐元 2020 0.877 歐元區 歐元 2019 0.893 歐元區 歐元 2018 0.848 歐元區 歐元 2017 0.923 日本 日圓 2022 131.454 日本 日圓 2021 109.817 日本 日圓 2020 106.725 日本 日圓 2019 109.008 日本 日圓 2018 110.424 日本 日圓 2017 116.667 瑞典 瑞典克朗 2022 10.122 瑞典 瑞典克朗 2021 8.584 瑞典 瑞典克朗 2020 9.205 瑞典 瑞典克朗 2019 9.457 瑞典 瑞典克朗 2018 8.703 瑞典 瑞典克朗 2017 8.894 瑞士 瑞士法郎 2022 0.955 瑞士 瑞士法郎 2021 0.914 瑞士 瑞士法郎 2020 0.939 瑞士 瑞士法郎 2019 0.994 瑞士 瑞士法郎 2018 0.979 瑞士 瑞士法郎 2017 1.024 英國 磅 2022 0.811 英國 磅 2021 0.727 英國 磅 2020 0.779 英國 磅 2019 0.784 英國 磅 2018 0.75 英國 磅 2017 0.808
建立年份資料行
現有日期資料表中需要新的年份資料行。
在 [模型] 檢視中,以滑鼠右鍵按一下 [日期] 資料表,然後選取 [新增資料行]。
在 DAX 資料編輯列中,輸入以下運算式:
Year = YEAR([Date])
,然後按 [Enter]。
建立關聯
新的年平均匯率和國家/地區貨幣格式字串資料表之間,以及年平均匯率資料表和現有日期資料表之間都需要關聯性。
如果您啟用了關聯性自動偵測,則可能已為您建立了「國家/地區」資料行上的「國家/地區貨幣格式字串」和「年平均匯率」之間的關聯性。 如果沒有,請建立此關聯性:
- 資料表 1:年平均匯率
- 資料表 1 資料行:國家/地區
- 基數:多對一
- 資料表 2:國家/地區貨幣格式字串
- 資料表 2 資料行:國家/地區
- 將此關聯性設為作用中:是
- 交叉篩選方向:單一
關聯性應顯示如下:
如果您啟用了關聯性自動偵測,則可能已建立了「國家/地區」資料行上的「國家/地區貨幣格式字串」和「銷售領域」之間的關聯性。 然而,這種關聯性並不適用於我們的模型。 請在 [模型] 檢視中删除此關聯性。
相反,在「年」資料行上的「年平均匯率」和「日期」之間建立關聯性。
- 資料表 1:年平均匯率
- 資料表 1 資料行:年
- 基數:多對多
- 資料表 2:日期
- 資料表 2 資料行:年
- 將此關聯性設為作用中:是
- 交叉篩選方向:單一 (「年平均匯率」篩選「日期」)
關聯性看起來應該像這樣:
儲存您的模型。
建立量值群組資料表
量值群組透過將不同的量值放在單一資料表中來協助您組織它們。
在 [常用] 功能區中,選取 [輸入資料]。
在 [建立資料表] 對話方塊中,將值保留空白。 將資料表命名為「銷售量值」,然後按一下 [載入]。 此資料表包含您的新量值。
建立量值
在 [資料] 窗格中,展開並以滑鼠右鍵按一下 [銷售量值],然後選取 [新增量值]。 在 DAX 資料編輯列中輸入以下 DAX 運算式,然後按 [Enter]:
Sales Amount = SUM(Sales[Sales Amount])
其看起來應該如下:
在 [銷售量值] 中,以滑鼠右鍵按一下 [資料行 1],然後選取 [在報表檢視中隱藏]。 這將銷售量值變更為量值群組,其現在顯示在 [資料] 窗格的頂端,並具有量值群組圖示,如下所示:
現在,您可以建立量值來計算匯率。 以滑鼠右鍵按一下 [銷售量值],選取 [新增量值],在 DAX 資料編輯列中輸入以下運算式,然後按 [Enter]:
Exchange Rate (Yearly Avg) = IF ( ISBLANK ( SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) ) || SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) = "United States", 1, AVERAGE ( 'Yearly Average Exchange Rates'[Yearly Average Exchange Rate] ) )
應該會顯示如下:
現在,您可以建立另一個量值,將 [銷售金額] 量值轉換為其他貨幣。 以滑鼠右鍵按一下 [銷售量值],選取 [新增量值],在 DAX 資料編輯列中輸入以下運算式,然後按 [Enter]:
Converted Sales Amount = SUMX('Date', CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
[銷售量值] 量值群組現在看起來應該像這樣:
建立報表
移至 [報表檢視]。 在報表中新增空白頁。
向新報表頁面新增折線圖視覺效果。 在為量值新增動態格式字串之前,您可以使用此視覺效果查看量值。
在 [資料] 窗格 [銷售量值]> 中,選取 [已轉換的銷售金額]。 不用按一下其他任何位置,可在「日期」資料表中選取 [年]。
複製並貼上視覺效果,這樣您就有了兩個折線圖視覺效果。 將第二個折線圖視覺效果變更為資料表視覺效果,然後將其移至折線圖下方,如下所示:
將交叉分析篩選器視覺效果新增至您的報表頁面。 在 [格式] 功能區中,將「國家/地區貨幣格式字串」資料表中的「國家/地區」新增至交叉分析篩選器中。
重新排列視覺效果,直到它們有更好的版面配置,就像這樣:
雖然不是必需的,但您可以變更視覺效果屬性以製作更好的報表:
交叉分析篩選器
- 交叉分析篩選器設定:單一選取
- 大小和樣式,邊框間距:10 px,所有邊
- 大小和樣式,視覺效果框線:淺灰色,10 px 圓角
- 交叉分析篩選器設定,樣式:並排顯示
- 交叉分析篩選器標題:關閉
- 值,框線:左,#333333,線條寬度 6
Table
- 大小和樣式,邊框間距:10 px,所有邊
- 大小和樣式,視覺效果框線:淺灰色,10 px 圓角
- 格線,水平格線:白色,寬 2
- 格線,垂直格線:白色,寬 2
- 格線,框線:白色
- 格線,選項:列邊框間距 2
- 值,值:背景色彩 #F6F4F4
- 值,值:替代背景色彩 #F6F4F4
- 資料行標題,文字:粗體,文字色彩白色,背景色彩 #0D6ABF
折線圖
- 大小和樣式,邊框間距:10 px,所有邊
- 大小和樣式,視覺效果框線:淺灰色,10 px 圓角
- 標題,子標題:開啟
- Y 軸,標題:關閉
- Y 軸:關閉
- 標記:開啟
- 資料標籤:開啟
- 資料標籤,值:粗體,藍色
畫布 (選用)
- 畫布背景:淺灰色,透明度 85%
藉由那些視覺效果屬性,您會得到精美的報表頁面,如下所示:
建立動態格式字串
在交叉分析篩選器中選取不同的國家/地區名稱會以視覺效果顯示已轉換的銷售金額量值結果,但格式不適合該國家或地區。
在 [資料] 窗格 [銷售量值]> 中,選取 [已轉換的銷售金額]。
在 [度量工具] 功能區中,按一下 [格式] 下拉式清單,然後選取 [動態]。
資料編輯列左側的下拉式清單方塊現在應該顯示 [格式],而資料編輯列中的公式應有格式字串。 將格式字串取代為以下 DAX 運算式,然後按 [Enter]:
SELECTEDVALUE ( 'Country Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
其看起來應該如下:
在交叉分析篩選器中選取不同的國家/地區。 資料表和折線圖現在應該以正確的格式顯示該國家或地區的已轉換貨幣金額。 嘗試在交叉分析篩選器中選取不同的國家/地區,看看視覺效果如何變更。
儲存您的模型。
已知問題和考量
在預覽期間,將解决以下問題和限制:
視覺效果具有可能影響格式字串顯示方式的格式化選項。 如果格式化在視覺效果中意外顯示,請移至視覺效果 [格式] 選項,搜尋 [顯示單位],並將其從 [自動] 變更為 [無]。
量值本身可以透過使用其名稱 (如 [量值 A]) 直接在其動態格式字串中參考,也可以透過使用
SELECTEDMEASURE()
間接參考。量值的動態格式字串僅適用於模型量值。 可以新增至即時連線報表中的報表量值不能具有量值的動態格式字串。
藉由適用於 Analysis Services 的 DirectQuery,當您在即時連線報表上按一下 [變更此模型] 時,它會將連線轉移至 Analysis Services 上的 DirectQuery。 一般來説,您可以變更遠端模型量值的格式字串。 預覽期間:
- 已定義動態格式字串的遠端模型量值會遭到封鎖,使其無法對靜態格式字串或不同的動態格式字串 DAX 表達式進行格式字串變更。
- 遠端模型量值無法從靜態格式字串變更為本機模型中定義的動態格式字串 DAX 運算式。
- 本機模型量值會封鎖使用量值的動態格式字串。