建立量值的動態格式字串

適用於:Power BI Desktop Power BI 服務

使用 量值的動態格式字串,您可以透過條件式套用具有個別 DAX 表達式的格式字串,來判斷量值在視覺效果中的顯示方式。

注意

量值的動態格式字串目前為預覽狀態。 在預覽版中時,功能和檔可能會變更。

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

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

建立動態格式字串

建立動態格式字串

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

  2. 在 [量值工具] 功能區 >[格式>] 列表框中,選取 [動態]。 已選取 [格式] 的新清單框會出現在 DAX 公式列左側。 此下拉式清單可讓您在靜態量值 DAX 運算式與動態格式字串 DAX 運算式之間切換。 切換至 Dynamic 之前使用的任何靜態格式字串,都會預先填入為 DAX 公式列中的字串。

    [格式] 下拉式清單的螢幕快照。

  3. 使用 DAX 運算式覆寫字串,以輸出量值的正確格式字串。 例如,下列表達式會從 「國家/地區貨幣格式字串」數據表查閱我們想要的貨幣格式字串:

    動態格式量值表達式的螢幕快照。

  4. 確認您的動態格式字串可在視覺效果中運作。

    若要刪除動態格式字串並使用靜態格式字串返回 ,請在 [格式化] 區段> [格式] 列表框中,選取不同的格式選項。 因為此動作沒有復原,因此會出現一個對話框,詢問您是否要繼續。 如果您想要再次使用動態格式字串,您必須重新輸入 DAX 運算式。

    格式變更警告的螢幕快照。

範例

瞭解新功能的最佳方式是自行嘗試。 只要使用 DAX 範例模型的 Adventure Works 2020 PBIX 檔案範例即可執行此動作。 藉由使用範例模型,您可以新增貨幣轉換,依年份顯示已轉換的銷售量。 下載之後,請在Power BI Desktop 中開啟檔案。

建立新資料表

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

  1. 在 [ 首頁] 功能區上,選取 [ 輸入數據]。

  2. 在 [ 建立數據表 ] 對話框中,輸入下表名稱,然後複製並貼上下表:

    數據表名稱: 國家/地區貨幣格式字串

    Country 貨幣 格式
    澳洲 美元 AU$#,0.00
    加拿大 美元 C$#,0.00
    丹麥 克朗 kr#,0
    歐元區 歐元 € #,0.00
    日本 日元 ¥ #,0
    瑞典 克朗 kr#,0
    瑞士 法郎 瑞士法郎#,0.00
    英國 Pound £ #,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
    加拿大 美元 2022 1.301
    加拿大 美元 2021 1.254
    加拿大 美元 2020 1.341
    加拿大 美元 2019 1.327
    加拿大 美元 2018 1.297
    加拿大 美元 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
    英國 Pound 2022 0.811
    英國 Pound 2021 0.727
    英國 Pound 2020 0.779
    英國 Pound 2019 0.784
    英國 Pound 2018 0.75
    英國 Pound 2017 0.808

建立 Year 數據行

現有的 Date 資料表需要新的 Year 資料行。

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

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

    DAX 公式列中年份公式的螢幕快照。

建立關聯

新的年度平均匯率與國家/地區貨幣格式字串數據表之間,以及每年平均匯率數據表與現有 Date 數據表之間需要關聯性。

  1. 如果您已針對關聯性進行自動偵測,則國家/地區數據行上的國家/地區貨幣格式字串年度平均匯率之間的關聯性可能已為您建立。 如果沒有,請建立此關聯性:

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

    關聯性看起來應該像這樣:

    國家/地區貨幣格式字串與年度平均匯率之間的關聯性屬性螢幕快照。

  2. 如果您已針對關聯性進行自動偵測,則可能已建立國家/地區數據行上的國家/地區貨幣格式字串與銷售領域之間的關聯性。 不過,此關聯性對我們的模型來說並不正確。 在 [模型] 檢視中,刪除此關聯性。

  3. 相反地,請在 [年] 數據行上建立 [年平均匯率] 和 [日期] 之間的關聯性。

    • 表 1: 每年平均匯率
    • 表 1 資料行: 年份
    • 基數: 多對多
    • 表 2: 日期
    • 表 2 數據行: 年份
    • 讓此關聯性成為作用中:
    • 交叉篩選方向: 單一 ('每年平均匯率' 篩選 'Date')

    關聯性看起來應該像這樣:

    關聯性的螢幕快照。

  4. 儲存您的模型。

建立量值群組數據表

量值群組可藉由將量值放在單一數據表中,協助您組織不同的量值。

  1. 在 [ 首頁] 功能區中,選取 [ 輸入數據]。

  2. 在 [ 建立數據表] 對話框中,將值保留空白。 將數據表 命名為 Sales 量值,然後按兩下 [ 載入]。 此資料表包含您的新量值。

建立量值

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

    Sales Amount = SUM(Sales[Sales Amount])
    

    其看起來應該如下:

    Sales amount measure DAX 公式的螢幕快照。

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

    Sales 量值群組中 Column1 的螢幕快照。

  3. 您現在可以建立量值來計算匯率。 以滑鼠右鍵按兩下列表示式,然後按 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 編輯器中 Exchange rate dax 公式的螢幕快照。

  4. 現在,您會建立另一個量值,將 Sales Amount 量值轉換成其他貨幣。 以滑鼠右鍵按兩下列表示式,然後按 Enter

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

    Sales 量值 量值群組現在看起來應該像這樣: 已轉換銷售金額量值公式的螢幕快照。

建立報表

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

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

  3. 在 [ 數據 ] 窗格中 >的 [銷售量值] 中,選取 [已轉換的銷售金額]。 若未按下任何其他位置,也請選取 [日期] 數據表中的 [年]。

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

  4. 複製視覺效果,然後貼上視覺效果,以便您有兩個折線圖視覺效果。 將第二個折線圖視覺效果變更為數據表視覺效果,然後將它移至折線圖下方,如下所示:

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

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

    國家/地區交叉分析篩選器的螢幕快照。

  6. 重新排列視覺效果,直到它們有更好的版面配置,如下所示:

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

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

    交叉分析篩選器

    • 交叉分析篩選器設定:單一選取
    • 大小和樣式,填補:10 圖元,所有邊緣
    • 大小和樣式,視覺框線:淺灰色,10 像素圓角
    • 交叉分析篩選器設定、樣式:磚
    • 交叉分析篩選器標頭:關閉
    • 值、框線:Left、#333333、6 行寬

    Table

    • 大小和樣式,填補:10 圖元,所有邊緣
    • 大小和樣式,視覺框線:淺灰色,10 像素圓角
    • 網格線、水準網格線:白色、2 寬度
    • 網格線、垂直網格線:白色、2 寬度
    • 網格線、框線:白色
    • 網格線、選項:2 列填補
    • 值、值:背景色彩 #F6F4F4
    • 值、值:替代背景色彩 #F6F4F4
    • 數據行標頭、文字:粗體、文字色彩白色、背景色彩 #0D6ABF

    折線圖

    • 大小和樣式,填補:10 圖元,所有邊緣
    • 大小和樣式,視覺框線:淺灰色,10 像素圓角
    • 標題、子標題:開啟
    • Y 軸,標題:關閉
    • Y 軸:關閉
    • 標記:開啟
    • 數據標籤:開啟
    • 數據標籤、值:粗體、藍色

    畫布(選擇性)

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

    有了這些視覺效果屬性,您就會得到不錯的報表頁面,如下所示:

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

建立動態格式字串

在交叉分析篩選器中選取不同的 國家/地區 名稱會顯示 [已轉換的銷售金額] 量值結果為視覺效果,但不是該國家或地區的正確格式。

  1. 在 [ 數據 ] 窗格中 >的 [銷售量值] 中,選取 [已轉換的銷售金額]。

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

  3. 公式列左邊的下拉式清單框現在應該會顯示 Format,而公式列中的公式應該有格式字串。 將格式字串取代為下列 DAX 運算式,然後按 Enter 鍵:

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

    其看起來應該如下:

    國家/地區貨幣格式字串動態公式的螢幕快照。

  4. 在交叉分析篩選器中選取不同的國家/地區。 數據表和折線圖視覺效果現在應該會以正確的格式顯示該國家或地區的已轉換貨幣金額。 請嘗試在交叉分析篩選器中選取不同的國家/地區,以查看視覺效果的變更方式。

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

  5. 儲存您的模型。

已知問題和考慮

在預覽期間,正在解決下列問題和限制:

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

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

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

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

  • 使用 DirectQuery for Analysis Services 時,當您在即時連線報表上按兩下 [變更此模型 ] 時,它會透過 Analysis Services 將連線轉移至 DirectQuery。 一般而言,您可以變更遠端模型量值的格式字串。 預覽期間

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