注意
視覺計算目前處於預覽狀態。
視覺計算是直接在視覺效果上定義和執行的 DAX 計算。 視覺計算可讓您更輕鬆地建立先前難以建立的計算,進而促成更簡化的 DAX、更輕鬆的維護,以及更好的效能。
以下是定義 Sales Amount 之累積總和的範例視覺計算。 請注意,所需的 DAX 很簡單:
Running sum = RUNNINGSUM([Sales Amount])
計算可以參考視覺效果中的任何數據,包括數據行、量值或其他視覺計算。 這個能力可移除語意模型的複雜度,並簡化撰寫 DAX 的流程。 您可以使用視覺計算來完成常見的商業計算,例如累積總和或移動平均。
視覺計算與 DAX 中的其他計算選項不同:
視覺計算不會儲存在模型中,而是儲存在視覺效果上。 這表示視覺效果計算只能參考視覺效果上的內容。 模型中的所有項目都必須先新增至視覺效果,視覺計算才能加以參考,這使得視覺計算不會受到篩選內容和模型複雜度的影響。
視覺計算結合了計算結果列內容的簡單性,以及量值的隨選計算彈性。
相較於量值,視覺計算會在彙總的資料上運算,而不是在詳細資料層級上,而這通常能帶來效能上的優勢。 當新的量值或視覺計算可以達成計算時,後者通常會帶來更好的效能。
由於視覺計算是視覺效果的一部分,因此其可以參考視覺效果結構,而這能帶來更大的彈性。
如需在 Power BI 中新增計算之方式的更深入比較,請參閱在 Power BI Desktop 中使用計算選項。
啟用視覺計算之後,您可以:
- 將視覺計算新增至報表
- 隱藏特定欄位
- 使用範本快速建立視覺計算
- 透過參考視覺效果的座標軸,進行彈性的視覺計算
以下各節詳細說明了先前項目符號中提到的每個元素如何與視覺計算協作。
啟用視覺計算
在 2024 年 9 月 24 日之前,若要使用視覺計算,您必須在 [選項及設定][選項]>[預覽功能] 中加以啟用。> 選取 [視覺計算],然後選取 [確定]。 在 Power BI Desktop 重新啟動之後,即會啟用視覺計算。
自 2024 年 9 月起,預設會啟用視覺計算,因此不再需要執行該步驟。 雖然視覺計算仍處於預覽狀態,但您可以視需要使用上述設定來停用視覺計算。
新增視覺計算
若要新增視覺計算,請選取視覺效果,然後選取功能區中的 [新增視覺計算] 按鈕:
視覺計算視窗在 [編輯] 模式中開啟。 [編輯] 模式畫面是由三個主要區段所組成,如下圖中從上到下所示:
- 視覺效果預覽,其中顯示您正在使用的視覺效果
- 公式列,可供您在其中新增視覺計算
- 視覺效果矩陣,其顯示視覺效果中的資料,並在您新增視覺計算時顯示其結果。 您套用至視覺效果的任何樣式或主題,都不會套用至視覺效果矩陣。
若要新增視覺計算,請在公式列中輸入運算式。 例如,在包含 Sales Amount 和 Total Product Cost by Fiscal Year 的視覺效果中,您可以輸入下列命令來新增視覺效果計算,以計算每年的利潤:
Profit = [Sales Amount] – [Total Product Cost]
根據預設,視覺效果上的大部分視覺計算都會依資料列評估,就像計算結果欄一樣。 在上一個範例中,針對視覺效果矩陣中的每個數據行,將目前的 Sales Amount 和 Total Product Cost 相減,其結果會返回在 [Profit] 數據列中。 雖然可能的話,您不需要像量值中一樣新增如 SUM (部分機器翻譯) 的彙總函式。 事實上,最好不要在不需要這類彙總時加以加入,以便您可以更輕鬆地區分量值和視覺計算運算式。
當您新增視覺計算時,這些計算會顯示在視覺效果上的欄位清單中:
此外,視覺效果上會顯示視覺計算:
您可以在視覺計算中使用許多現有的 DAX 函式。 您也可以使用特定於視覺計算的函式。 由於視覺計算是在視覺效果矩陣的範圍內運作,因此無法使用依賴模型關聯性的函式,例如 USERELATIONSHIP (部分機器翻譯)、RELATED (部分機器翻譯) 或 RELATEDTABLE (部分機器翻譯)。
隱藏視覺效果中的欄位
在視覺計算編輯模式中,您可以隱藏視覺效果中的欄位,就像在模型檢視中隱藏數據行和數據表一樣。 例如,如果您想要只顯示 Profit 視覺計算,您可以從檢視中隱藏 Sales Amount 和 Total Profit 成本:
隱藏欄位不會從視覺效果或視覺效果矩陣中移除這些欄位,因此您的視覺效果計算仍然可以加以參考並能夠繼續運作。 隱藏欄位仍會顯示在視覺效果矩陣上,但不會在產生的視覺效果上顯示。 建議的做法是,只有在需要該隱藏欄位視覺計算才能正常運作的情況下,才包括那些隱藏欄位。
使用範本
視覺計算包括範本,以讓您可以更輕鬆地撰寫常見的計算。 若要尋找範本,您可以選取範本按鈕並選擇要使用的樣本:
您也可以按兩下 [新增視覺計算] 按鈕的 底部,從功能區建立樣板化視覺計算 。
下列範本可供使用:
- 累積總和: 計算值的總和,並將目前的值加至前一個值。 使用 RUNNINGSUM 函式。
- 移動平均: 計算指定視窗中一組值的平均值,方法是將值的總和除以視窗的大小。 使用 MOVINGAVERAGE 函式。
- 父代百分比: 計算相對於值父代的值百分比。 使用 COLLAPSE 函式。
- 總計百分比: 使用 COLLAPSEALL 函式計算值相對於所有值的百分比。
- 子系平均值: 計算子值集合的平均值。 使用 EXPAND 函式。
- 與先前對比 使用 PREVIOUS 函式將值與上一個值比較。
- 與下一個比較。 使用 NEXT 函式將值與下一個值比較。
- 與第一個比較。 使用 FIRST 函式,比較值與第一個值。
- 與上次的比較。 使用 LAST 函式,比較值與最後一個值。
- 根據上下文查找值。 使用 LOOKUP 函式,在目前內容中的可視化矩陣上尋找值或評估表達式。
- 查閱總計的值。 使用 LOOKUPWITHTOTALS 函式,在具有總計的可視化矩陣上尋找值或評估表達式。
選取範本會在公式列中插入範本。 您可以使用這些範本作為起點。 您也可以新增自己的運算式,而不是依賴範本。
參數選擇器
參數選擇器可讓您輕鬆地在視覺計算函式中選取參數的值。 例如,我們在這裡載入了 查閱包含總計範本的值 :
您也可以使用 CTRL+SPACE 鍵盤快捷方式來啟動參數選擇器。
Axis
許多函式都有選擇性的 Axis 參數,其只能在視覺計算中使用。 Axis 會影響視覺計算周遊視覺效果矩陣的方式。 根據預設,Axis 參數會設定為視覺效果中的第一個座標軸。 對於許多視覺圖形而言,第一個坐標軸是 ROWS,這表示在視覺矩陣中,視覺計算是從上到下逐行評估的。 下表顯示 Axis 參數的有效值:
Axis 圖示 | Axis 名稱 | 描述 |
---|---|---|
![]() |
ROWS | 從上到下垂直計算數據列。 |
![]() |
COLUMNS | 從左至右水平計算各列。 |
![]() |
ROWS COLUMNS | 從上到下垂直計算各行,然後依次從左到右逐列計算。 |
![]() |
COLUMNS ROWS | 從左至右水平計算各列,從上到下依次逐行繼續計算。 |
注意
如果您指定圖表上不存在的座標軸,則會忽略該座標軸。
Reset
許多函式都有選擇性的 Reset 參數,僅供視覺計算使用。 Reset 會影響函式在周遊視覺效果矩陣時,會將其值重設為 0,或切換至不同的範圍。 它會藉由分割目標數據行來執行此動作。 當計算在分區內執行時,欄位如何在分區中拆分將決定計算是否重置。 根據預設,Reset 參數會設定為 NONE,這表示永遠不會重新啟動視覺計算。 參數 Reset 接受不同類型的值:
- 整數
- 欄位參考
- 特殊同義字:HIGHESTPARENT、、 LOWESTPARENTNONE
在每個情況下,它會指定視覺計算階層中的單一層級(讓我們將其稱為目標層級)。 不過,計算中解譯此層級的方式可能會有所不同。 行為 Reset 會以兩種不同的模式運作: 絕對 和 相對。
使用整數值作為參數或其對應的 NONE、HIGHESTPARENT、LOWESTPARENT時,您可以透過整數的信號來選擇兩種模式:正值會在絕對模式中重設,負值會在相對模式中重設,而零則不會重設,這是預設行為。
如果您指定數據行參考,則也會以絕對模式運作。 這些值決定了目標欄位如何被分割,因此影響該欄位是否會重設。 以下詳細說明這兩種模式:
絕對模式
此模式表示計算應該由目標數據行和上述所有數據行進行分割,而且這會在計算的每個層級套用。 在目標上方的層級(目標數據行不存在,也可能是其他層級),計算會依其餘可用的數據行進行分割。 正整數值用來識別從頂端開始的目標欄(頂端欄為 1、下一個為 2,依此類推)。 其值會增加至 N(階層中的欄數),且任何較高的值都會被修剪。 或者,您也可以直接指定欄。
例如,請考慮一個包含這些層級的視覺計算:年、季度、月和日。 下表顯示如何根據Reset的值,在每個層級分割計算:
層級/ 值 | Reset = 1 或 年 | Reset = 2 或一季度 | Reset = 3 或 月份 | Reset = 4 或 日 |
---|---|---|---|---|
日層級 | 年 | 季度和年份 | 月、季和年 | 日、月、季和年 |
月份層級 | 年 | 季度和年份 | 月、季和年 | 月、季和年 |
四分之一層級 | 年 | 季度和年份 | 季度和年份 | 季度和年份 |
年級 | 年 | 年 | 年 | 年 |
總計層級 | 沒有 | 沒有 | 沒有 | 沒有 |
相對模式
假設負整數值 –X,在每一個層級,計算將由階層中所有欄位屬於 X 層級或更高的欄位進行分割(如果不存在這類層級,則不進行任何分割)。 此模式的有效值介於 -1 和 -N+1 之間(其中 N 是階層中的數據行數目),而且會修剪任何較低的值。 同樣地,請考慮稍早所述的視覺計算。 下表顯示,根據重設值,計算過程在每個層級將如何劃分:
層級/ 值 | Reset = -1 | Reset = -2 | Reset = -3 |
---|---|---|---|
日層級 | 月、季和年 | 季度和年份 | 年 |
月份層級 | 季度和年份 | 年 | 沒有 |
四分之一層級 | 年 | 沒有 | 沒有 |
年級 | 沒有 | 沒有 | 沒有 |
總計層級 | 沒有 | 沒有 | 沒有 |
同義詞
Reset 也提供下列同義字:
- NONE 為預設值。 它不會重設計算,而且相當於 0。
- HIGHESTPARENT 執行最高層級的絕對重設,相當於1。
- LOWESTPARENT 會由直接父代執行相對重設,且相當於 -1。
使用 Reset 的範例
例如,請考慮稍早所述的可視化計算。 視覺計算相等,並傳回每年重新啟動的銷售 金額 總和,而不論計算的評估層級為何(請參閱 絕對模式):
RUNNINGSUM([Sales Amount], HIGHESTPARENT)
RUNNINGSUM([Sales Amount], 1)
RUNNINGSUM([Sales Amount], [Year])
相反地,下列視覺計算都會傳回從0開始的每個直接父系的銷售金額總和,這當然取決於計算評估的層級(請參閱相對模式)。
RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], -1)
最後,此視覺計算 不會 重設,而且會繼續將每天的 Sales Amount 值新增至先前的值,而不會重新啟動。
RUNNINGSUM([Sales Amount])
Axis 和 Reset 與 ORDERBY 和 PARTITIONBY
Axis、Reset、ORDERBY 和 PARTITIONBY 是可以兩兩搭配或一起使用以影響評估計算方式的四個函式。 這四個函式會形成兩個經常一起使用的配對:
- Axis 和 Reset
- ORDERBY 和 PARTITIONBY
Axis 和 Reset 僅適用於可用於視覺計算的函式,而且只能在視覺計算中使用,因為其會參考視覺效果結構。 ORDERBY 和 PARTITIONBY 是可用於計算欄、度量值和視覺化計算的函式,且會參考欄位。 雖然其會執行相同的函式,但在所提供的抽象層級中是有所不同的;對視覺效果結構的參考,比使用 ORDERBY 或 PARTITIONBY 明確參考欄位會更有彈性。
重設預期座標軸上會有多個層級。 如果座標軸上沒有多個層級 (這可能是因為座標軸上只有一個欄位,或是有多個具有單一層級的欄位),您可以使用 PARTITIONBY。
指定任何一組都能運作良好,但您也可以同時指定 Axis、ORDERBY 和/或 PARTITIONBY,在此情況下,針對 ORDERBY 和 PARTITIONBY 指定的值會覆寫 Axis 所指定的值。 Reset 無法與 ORDERBY 和 PARTITIONBY 合併。
您可以將 ORDERBY 和 PARTITIONBY 配對想成透過明確指定欄位來將欄位參考固定下來,其中座標軸和重設都與欄位無關,其指的是結構以及所使用結構上的任何欄位。
可用的函數
您可以在視覺計算中使用許多現有的 DAX 函式。 由於視覺計算是在視覺效果矩陣的範圍內運作,因此無法使用依賴模型關聯性的函式,例如 USERELATIONSHIP (部分機器翻譯)、RELATED (部分機器翻譯) 或 RELATEDTABLE (部分機器翻譯)。
視覺計算也會引進一組視覺計算特有的函式。 其中許多函式是更容易使用的DAX視窗函式捷徑。
函式 | 描述 | 範例 | 作為下列項目的捷徑 |
---|---|---|---|
COLLAPSE | 計算會在座標軸的較高層級進行評估。 | 父項百分比 = DIVIDE([Sales Amount], COLLAPSE([Sales Amount], ROWS)) | N/A |
COLLAPSEALL | 計算會在座標軸的總層級進行評估。 | 總計百分比 = DIVIDE([Sales Amount], COLLAPSEALL([Sales Amount], ROWS)) | N/A |
EXPAND | 計算會在座標軸的較低層級進行評估。 | 平均子數 = EXPAND(平均([Sales Amount]), ROWS) | N/A |
EXPANDALL | 計算會在座標軸的分葉層級進行評估。 | 葉層的平均值 = EXPANDALL(平均值([銷售金額]), ROWS) | N/A |
FIRST | 是指座標軸的第一行。 | ProfitVSFirst = [Profit] – FIRST([Profit]) | INDEX(1) |
ISATLEVEL | 回報指定的資料行是否存在於目前層級。 | IsFiscalYearAtLevel=ISATLEVEL([會計年度]) | N/A |
LAST | 指的是座標軸的最後一排。 | ProfitVSLast = [Profit] – LAST([Profit]) | INDEX(-1) |
LOOKUP | 使用目前內容評估可視化矩陣中的表達式。 | LookupSalesFor2025WithContext = LOOKUP(SUM([Sales]) [Year], “2025”) | N/A |
LOOKUPWITHTOTALS | 使用總計評估可視化矩陣中的表達式。 | LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(SUM([Sales]), [Year], 「2025」) | N/A |
MOVINGAVERAGE | 在座標軸上新增移動平均。 | 移動平均銷售額 = MOVINGAVERAGE([銷售金額],2) | WINDOW |
NEXT | 參考座標軸的下一列。 | ProfitVSNext = [Profit] – NEXT([Profit]) | OFFSET(1) |
PREVIOUS | 參考座標軸的前一列。 | ProfitVSPrevious = [Profit] - PREVIOUS([Profit]) | OFFSET(-1) |
RANGE | 指的是座標軸上的一部分行。 | AverageSales = AVERAGEX(RANGE1), [銷售金額]) | WINDOW |
RUNNINGSUM | 在座標軸上新增累積總和。 | RunningSumSales = RUNNINGSUM([銷售金額]) | WINDOW |
格式化視覺效果計算
可以使用資料類型和格式設定選項來設定視覺計算的格式, 也可以設定自訂視覺效果層級格式字串。 在視覺效果格式設定窗格中,使用 [一般] 區段中的 [資料格式] 選項來設定格式:
考量與限制
視覺計算目前處於預覽狀態,且在預覽期間,您應該注意下列考量和限制:
- 並非所有視覺效果類型都受到支援。 使用視覺計算編輯模式來變更視覺效果類型。 此外,自訂視覺效果尚未搭配視覺計算或隱藏欄位進行測試。
- 下列視覺效果類型和視覺效果屬性已經過測試,且發現無法與視覺計算或隱藏欄位搭配使用:
- 交叉分析篩選器
- R 視覺效果
- Python 視覺效果
- 關鍵影響因數
- 分解樹狀結構
- 問答
- 智慧型敘事
- 計量
- 編頁報表
- Power Apps(應用程式)
- Power Automate
- 小倍數
- 散佈圖上的播放座標軸
- 此功能的效能不代表最終產品。
- 無法使用複製/貼上或其他機制重複使用視覺計算。
- 您無法篩選視覺計算。
- 視覺計算無法在相同或不同的詳細資料層級上參考自己。
- 無法對視覺計算或隱藏欄位進行個人化。
- 您無法將使用視覺計算或隱藏欄位的視覺效果釘選到儀表板。
- 您無法使用發行至 Web (部分機器翻譯) 功能搭配使用視覺計算或隱藏欄位的報表。
- 從視覺效果匯出數據時,視覺計算結果不會包含在基礎數據匯出中。 匯出中永遠不會包含隱藏的欄位,但導出 基礎數據時除外。
- 您無法搭配使用視覺計算或隱藏欄位的視覺效果使用查看記錄鑽研功能。
- 您無法在視覺計算上設定資料類別 (部分機器翻譯)。
- 您無法在視覺計算上變更彙總。
- 您無法變更視覺計算的排序次序。
- 使用視覺計算或隱藏欄位的報表不支援 Power BI Embedded。
- 不支援在 2025 版之前發行的 SQL Server Analysis Services 版本的實時連線。
- 雖然您可以搭配視覺計算使用 字段參數 ,但它們有一些限制。
- 視覺計算無法使用顯示沒有資料的項目。
- 您無法搭配視覺計算使用資料限制。
- 您無法在視覺計算上設定 動態格式字串,也無法使用視覺計算做為欄位或量值的動態格式字串。
後續步驟
下列文章在學習和使用視覺計算時可能很有用: