共用方式為


建立量值的動態格式字串

適用於: 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. [建立表格] 對話方塊中,在 [名稱] 欄位中輸入 [國家/地區貨幣格式字串],然後複製並貼上下表:

    國家/地區 貨幣 格式
    澳洲 美元 AU$#,0.00
    Canada 美元 C$#,0.00
    丹麥 挪威克朗 kr#,0
    歐元區 歐元 歐元 #,0.00
    日本 日圓 ¥ #,0
    瑞典 瑞典克朗 kr#,0
    瑞士 瑞士法郎 CHF#,0.00
    英國 英鎊 #,0
    美國 美元 US$#,0.00
  3. 確認表格看起來正確,然後選取 載入。

    [建立數據表] 對話框的螢幕快照。

  4. 對以下資料表重複之前的步驟:

    表格名稱:年平均匯率

    國家/地區 貨幣 年平均匯率
    澳洲 美元 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. 在 [建立資料表] 對話方塊中,將值保留空白。 將資料表命名為 Sales measures,然後選取 [載入]。 此資料表包含您的新量值。

建立量值

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

    Sales Amount = SUM(Sales[Sales Amount])
    

    其看起來應該如下:

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

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

    銷售量值群組中 Column1 的截圖。

  3. 現在,您可以建立量值來計算匯率。 以滑鼠右鍵按一下 [銷售量值],選取 [ 新增量值],在 DAX 資料編輯列中輸入下列運算式,然後按 Enter

    Exchange Rate (Yearly Avg) = 
    IF (
        ISBLANK ( SELECTEDVALUE ( 'Country/Region Currency Format Strings'[Country/Region] ) )
            || SELECTEDVALUE ( 'Country/Region Currency Format Strings'[Country/Region] ) = "United States",
        1,
        AVERAGE ( 'Yearly Average Exchange Rates'[Yearly Average Exchange Rate] )
    )
    
    

    它應該如下所示: DAX 編輯器中匯率 DAX 公式的螢幕擷取畫面。

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

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

    銷售度量 度量群組現在應該是這樣的:這是 [已轉換銷售量公式] 的螢幕截圖。

建立報表

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

  2. 向新報表頁面新增折線圖視覺效果。 使用此圖形來查看您的量值,然後再新增量值的動態格式字串。

  3. 在 [資料] 窗格 [銷售量值]> 中,選取 [已轉換的銷售金額]。 無需選取其他任何位置,也請在 [日期] 表格中選取 [年份]。

    [報表] 檢視中折線圖視覺效果的螢幕快照。

  4. 複製並貼上圖表,以建立兩個折線圖圖表。 將第二個折線圖視覺效果變更為資料表視覺效果,然後將它移至折線圖下方,如下所示:

    複製折線圖視覺效果的螢幕快照。

  5. [視覺效果] 窗格中選取 [清單交叉分析篩選器],將清單交叉分析篩選器視覺效果新增至報表頁面。 在 [資料] 窗格中,從 [國家/地區貨幣格式字串] 資料表中選取 [國家/地區],以將它新增至交叉分析篩選器。

    國家/地區切片器的螢幕擷取畫面。

  6. 將圖像重新排列,直到它們的排版變得更好,如下所示:

    重新排列視覺效果的螢幕快照。

  7. 雖然不是必要,但您可以變更視覺屬性以製作更好的報表。 使用 [視覺效果] 窗格中的 [設定視覺效果格式] 按鈕來進行下列變更:

    切片機

    • 視覺效果 標籤 >切片設定>單選>開啟
    • 一般 標籤 >屬性>內邊距:10 px,所有邊緣
    • 一般標籤 >效果>視覺框線開啟,淺灰色,10 像素圓角
    • 一般 索引標籤 >標題關閉
    • 視覺 標籤 >按鈕>邊框:#333333,6 行寬

    • 一般 標籤 >屬性>內邊距:10 px,所有邊緣
    • 一般標籤 >效果>視覺框線開啟,淺灰色,10 像素圓角
    • 視覺 標籤 >格點>水平格線開啟、白色、2 寬度
    • 視覺標籤>格點>垂直格線開啟、白色、2 寬度
    • 視覺標籤 > 格>邊框:白色
    • 視覺標籤>網格>選項:2 行填充
    • [視覺] 索引標籤 >>背景色彩:#F6F4F4
    • [視覺] 索引標籤 >>替代背景色彩:#F6F4F4
    • 視覺索引 標籤 >欄標題>文字: 粗體、文字顏色 白色、背景顏色 #0D6ABF

    折線圖

    • 一般 標籤 >屬性>內邊距:10 px,所有邊緣
    • 一般標籤>效果>視覺框線開啟、淺灰色、10 像素圓角
    • 一般 標籤 >屬性>標題>副標題啟用
    • 視覺 標籤 >Y 軸>標題關閉
    • 視覺標籤 >Y 軸>值:關閉
    • 視覺 標籤 >標記開啟
    • 視覺標籤>資料標籤:開啟
    • 視覺標籤>資料標籤>:粗體、藍色

    畫布(可選)

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

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

    灰色畫布背景的視覺效果螢幕快照。

建立動態格式字串

在交叉分析篩選器中選取不同的 國家/地區 名稱,會在圖表中顯示 [轉換的銷售金額] 度量結果,但格式未能符合該國家/地區的要求。

  1. 在 [ 資料 ] 窗格的 [銷售量值] 底下,選取 [轉換的銷售金額]。

  2. 「測量工具」功能區中,從「格式」下拉式清單中選取「動態」。

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

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

    其看起來應該如下:

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

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

    已轉換銷售金額視覺效果的螢幕快照。

  5. 儲存您的模型。

已知問題和考量

  • 視覺效果具有格式選項,可能會影響格式字串的顯示方式。 如果格式在視覺效果中意外顯示,請移至視覺效果>格式視覺效果選項,搜尋顯示單位,然後將它們從自動變更為

    顯示單位從自動到無的螢幕快照。

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

  • 量值的動態格式字串僅適用於模型量值。 您可新增至 Live Connect 報表的報告量度不能使用動態格式字串。

  • 使用 Analysis Services 的 DirectQuery 時,當您在即時連線報表上選擇 [ 對此模型進行變更 ] 選項時,系統會將連線方式切換為使用 Analysis Services 上的 DirectQuery。 一般來説,您可以變更遠端模型量值的格式字串。 使用量值的動態格式字串:

    • 已定義動態格式字串的遠端模型量值會遭到封鎖,使其無法對靜態格式字串或不同的動態格式字串 DAX 表達式進行格式字串變更。
    • 您無法將遠端模型量值從靜態格式字串變更為本機模型中定義的動態格式字串 DAX 運算式。
    • 本機模型的度量被限制使用動態格式字串。