共用方式為


建立量值的動態格式字串

適用於: Power BI Desktop Power BI 服務

藉由量值的動態格式字串,您可以透過有條件地套用具有單獨 DAX 運算式的格式字串來確定量值在視覺效果中的顯示方式。

注意

量值的動態格式字串目前處於預覽狀態。 處於預覽狀態時,功能和文件可能會變更。

動態格式字串克服了使用 FORMAT 函式的固有缺點。 也就是說,藉由 FORMAT,即使是數值資料類型也會以字串形式返回,這可能不適用於需要數值的視覺效果,如圖表。 使用動態格式字串時,量值會保持其資料類型,而不會強制變更為字串資料類型。 這將根據內容對量值套用不同的格式字串。

動態格式字串也可以與計算群組搭配使用。 與計算群組一起使用的 DAX 模式也可以在量值的動態格式字串中使用,但範圍僅限於個別量值,而不是模型中的所有量值。 若要深入了解,請參閱計算群組 - 動態格式字串

建立動態格式字串

建立動態格式字串

  1. 在 [資料] 窗格中,選取要為其指定動態格式字串的量值。

  2. 在 [度量工具] >功能區 [格式化] >區段 [格式] 清單方塊中,選取 [動態]。 DAX 公式列左側將顯示已選取 [格式] 的新清單方塊。 此下拉式清單用於在靜態量值 DAX 運算式和動態格式字串 DAX 運算式之間進行切換。 無論在切換到動態之前使用了什麼靜態格式字串,都會在 DAX 公式列中作為字串預先填入。

    格式下拉式清單的螢幕擷取畫面。

  3. 用 DAX 運算式覆寫字串,該運算式為您的量值輸出正確的格式字串。 例如,以下運算式從「國家/地區貨幣格式字串」資料表中查詢所需的貨幣格式字串:

    動態格式量值運算式的螢幕擷取畫面。

  4. 驗證您的動態格式字串在視覺效果中是否有效。

    若要删除動態格式字串並傳回使用靜態格式字串,請在 [格式化] >區段的 [格式] 清單方塊中選取其他格式選項。 由於此動作無法復原,因此會出現詢問您是否要繼續的對話方塊。 如果您想要返回以使用動態格式字串,則必須重新輸入 DAX 運算式。

    格式變更警告的螢幕擷取畫面。

範例

了解新功能的最佳方式是親自嘗試。 您可以使用 DAX 範例模型中提供的範例 Adventure Works 2020 PBIX 檔案來實現這一點。 透過使用範例模型,您可以新增貨幣轉換,以依年份顯示轉換後的銷售金額。 下載後,請在 Power BI Desktop 中開啟文件。

建立新資料表

範例模型不包含建立和使用動態格式字串所需的所有資料。 若要開始,您首先需要新增兩個資料表。

  1. 在 [常用] 功能區上選取 [輸入資料]

  2. 在 [建立資料表] 對話方塊中,輸入以下資料表名稱,然後複製並貼上以下資料表:

    資料表名稱:國家/地區貨幣格式字串

    Country 貨幣 格式
    澳大利亞 澳洲元 AU$#,0.00
    Canada 加幣 C$#,0.00
    丹麥 挪威克朗 kr#,0
    歐元區 歐元 € #,0.00
    日本 日圓 ¥ #,0
    瑞典 瑞典克朗 kr#,0
    瑞士 瑞士法郎 CHF#,0.00
    英國 £ #,0
    美國 美元 US$#,0.00
  3. 驗證資料表是否正確,然後按一下 [載入]

    建立資料表對話方塊的螢幕擷取畫面。

  4. 對以下資料表重複上述步驟:

    資料表名稱:年平均匯率

    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

建立年份資料行

現有日期資料表中需要新的年份資料行。

  1. 在 [模型] 檢視中,以滑鼠右鍵按一下 [日期] 資料表,然後選取 [新增資料行]

  2. 在 DAX 公式列中,輸入以下運算式:Year = YEAR([Date]),然後按 Enter 鍵

    DAX 公式列中年份公式的螢幕擷取畫面。

建立關聯

新的「年平均匯率」和「國家貨幣格式字串」資料表之間,以及年平均匯率資料表和現有日期資料表之間都需要建立關聯性。

  1. 如果您啟用了關聯性自動偵測,則可能已為您建立了「國家/地區」資料行上的「國家/地區貨幣格式字串」「年平均匯率」之間的關聯性。 如果沒有,則建立此關聯性:

    • 資料表 1:年平均匯率
    • 資料表 1 資料行:國家/地區
    • 基數:多對一
    • 資料表 2:國家/地區貨幣格式字串
    • 資料表 2 資料行:國家/地區
    • 將此關聯性設為作用中:
    • 交叉篩選方向:單一

    關聯性應顯示如下:

    「國家/地區貨幣格式字串」和「年平均匯率」之間關聯性屬性的螢幕擷取畫面。

  2. 如果您啟用了關聯性自動偵測,則可能已建立了「國家/地區」資料行上的「國家/地區貨幣格式字串」「銷售領域」之間的關聯性。 然而,這種關聯性並不適用於我們的模型。 在 [模型] 檢視中,删除此關聯性。

  3. 相反,在「年」資料行上的「年平均匯率」「日期」之間建立關聯性。

    • 資料表 1:年平均匯率
    • 資料表 1 資料行:
    • 基數:多對多
    • 資料表 2:日期
    • 資料表 2 資料行:
    • 將此關聯性設為作用中:
    • 交叉篩選方向:單一 (「年平均匯率」篩選「日期」)

    關聯性應顯示如下:

    關聯性的螢幕擷取畫面。

  4. 儲存您的模型。

建立量值群組資料表

量值群組透過將不同的量值放在一個資料表中來協助您組織它們。

  1. 在 [常用] 功能區中選取 [輸入資料]

  2. 在 [建立資料表] 對話方塊中,將值留空。 將資料表命名為「銷售量值」,然後按一下 [載入]。 此資料表包含您的新量值。

建立量值

  1. 在 [資料] 窗格中,展開並以滑鼠右鍵按一下 [銷售量值],然後選取 [新增量值]。 在 DAX 公式列中輸入以下 DAX 運算式,然後按 Enter 鍵

    Sales Amount = SUM(Sales[Sales Amount])
    

    其看起來應該如下:

    銷售金額量值 DAX 公式的螢幕擷取畫面。

  2. 在 [銷售量值] 中,以滑鼠右鍵按一下 [資料行 1],然後選取 [在報表檢視中隱藏]。 這將銷售量值變更為量值群組,其現在顯示在 [資料] 窗格的頂端,並具有量值群組圖示,如下所示:

    銷售量值群組中資料行 1 的螢幕擷取畫面。

  3. 現在,您可以建立量值來計算匯率。 以滑鼠右鍵按一下 [銷售量值],選取 [新增量值],在 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 編輯器中匯率 dax 公式的螢幕擷取畫面。

  4. 現在,您可以建立另一個量值,將 [銷售金額] 量值轉換為其他貨幣。 以滑鼠右鍵按一下 [銷售量值],選取 [新增量值],在 DAX 公式列中輸入以下運算式,然後按 Enter 鍵

        Converted Sales Amount = 
        SUMX('Date',
        CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
    
    

    [銷售量值] 群組現在應顯示如下:轉換後的銷售金額量值公式之螢幕擷取畫面。

建立報表

  1. 移至 [報表檢視]。 在報表中新增空白頁。

  2. 向新報表頁面新增折線圖視覺效果。 在為量值新增動態格式字串之前,您可以使用此視覺效果工具查看量值。

  3. 在 [資料] 窗格 [銷售量值]> 中,選取 [轉換後的銷售金額]。 在不按一下其他任何位置的情况下,也可以在「日期」資料表中選取 [年份]

    在報表檢視中顯示折線圖的螢幕擷取畫面。

  4. 複製並貼上視覺效果,這樣您就有了兩個折線圖視覺效果。 將第二個折線圖視覺效果變更為資料表視覺效果,然後將其移至折線圖下方,如下所示:

    複製折線圖視覺效果的螢幕擷取畫面。

  5. 將交叉分析篩選器視覺效果新增至您的報表頁面。 在 [格式] 功能區中,將「國家/地區貨幣格式字串」資料表中的「國家/地區」新增至交叉分析篩選器中。

    國家/地區交叉分析篩選器的螢幕擷取畫面。

  6. 重新排列視覺效果,直到它們有更好的版面配置,就像這樣:

    重新排列視覺效果的螢幕擷取畫面。

  7. 雖然不是必需的,但您可以變更視覺效果屬性以製作更好的報表:

    交叉分析篩選器

    • 交叉分析篩選器設定:單一選取
    • 大小和樣式,填補:10 px,所有邊
    • 大小和樣式,視覺效果框線:淺灰色,10 px 圓角
    • 交叉分析篩選器設定,樣式:並排顯示
    • 交叉分析篩選器標題:關閉
    • 值,框線:左,#333333,6 線條寬度

    Table

    • 大小和樣式,填補:10 px,所有邊
    • 大小和樣式,視覺效果框線:淺灰色,10 px 圓角
    • 格線,水平格線:白色,2 寬
    • 格線,垂直格線:白色,2 寬
    • 格線,框線:白色
    • 格線,選項:2 資料列填補
    • 值,值:背景色彩 #F6F4F4
    • 值,值:備用背景色彩 #F6F4F4
    • 資料行標題,文字:粗體,文字色彩白色,背景色彩 #0D6ABF

    折線圖

    • 大小和樣式,填補:10 px,所有邊
    • 大小和樣式,視覺效果框線:淺灰色,10 px 圓角
    • 標題,副標題:開啟
    • Y 軸,標題:關閉
    • Y 軸:關閉
    • 標記:開啟
    • 資料標籤:開啟
    • 資料標籤,值:粗體,藍色

    畫布 (選用)

    • 畫布背景:淺灰色,透明度 85%

    藉由那血視覺效果屬性,您會得到精美的報表頁面,如下所示:

    用於背景效果之灰色畫布背景的螢幕擷取畫面。

建立動態格式字串

在交叉分析篩選器中選取不同的國家/地區名稱會以視覺效果顯示轉換後的銷售金額量值結果,但格式不適合該國家或地區。

  1. 在 [資料] 窗格 [銷售量值]> 中,選取 [轉換後的銷售金額]

  2. 在 [度量工具] 功能區中,按一下 [格式] 下拉式清單,然後選取 [動態]

  3. 公式列左側的下拉式清單方塊現在應該顯示 [格式],公式列中的公式應有格式字串。 將格式字串取代為以下 DAX 運算式,然後按 Enter 鍵

    SELECTEDVALUE ( 'Country Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
    

    其看起來應該如下:

    國家/地區貨幣格式字串動態公式的螢幕擷取畫面。

  4. 在交叉分析篩選器中選取其他國家/地區。 資料表和折線圖現在應該以正確的格式顯示該國家或地區的轉換後的貨幣金額。 嘗試在交叉分析篩選器中選取不同的國家/地區,看看視覺效果如何變更。

    轉換後的銷售金額之螢幕擷取畫面。

  5. 儲存您的模型。

已知問題和考量

在預覽期間,將解决以下問題和限制:

  • 視覺效果具有可能影響格式字串顯示方式的格式化選項。 如果格式化在視覺效果中意外顯示,請移至視覺效果 [格式] 選項,搜尋 [顯示單位] 並將其從 [自動] 變更為 [無]

    顯示單位從自動到無的螢幕擷取畫面。

  • 量值本身可以透過使用其名稱 (如 [Measure A]) 直接在其動態格式字串中參考,也可以透過使用 SELECTEDMEASURE() 間接參考。

  • 量值的動態格式字串僅適用於模型量值。 可以新增至即時連線報表中的報表量值不能具有量值的動態格式字串。

  • 藉由適用於 Analysis Services 的 DirectQuery,當您在即時連線報表上按一下 [變更此模型] 時,它會將連線轉移至 Analysis Services 上的 DirectQuery。 一般來説,您可以變更雲端模型量值的格式字串。 預覽期間:

    • 定義了動態格式字串的遠端模型量值被封鎖將格式字串變更為靜態格式字串或不同的動態格式字串 DAX 運算式。
    • 雲端模型量值不能從靜態格式字串變更為本機模型中定義的動態格式字串 DAX 運算式。
    • 封鎖本機模型量值對量值使用動態格式字串。