LuckyTemplates 中 SUM 與 SUMX 的區別

LuckyTemplates 中 SUM 與 SUMX 的區別

之間的區別,仍然存在很多混淆。這是用戶必須掌握的關鍵知識,因為這兩種功能都可以跨不同的場景使用,但在某些情況下,一個比另一個更有效。您可以在本博客底部觀看本教程的完整視頻。

我將在這裡重點介紹一個示例,以顯示兩者之間的區別。但在進入該示例之前,了解聚合函數和迭代函數之間的區別很重要。

目錄

聚合器與迭代器

說到 DAX,有兩種類型的計算引擎——聚合器和迭代器。

聚合函數包括SUM。另一方面,迭代器是末尾帶有 X 的函數,例如SUMX

迭代函數遍歷表的每一行,為每一行添加邏輯。

聚合函數查看將上下文放入公式後剩下的整個列。從那裡,一次對整個列進行一次聚合。

SUM 作為聚合器

SUM如何用作聚合器?

LuckyTemplates 中 SUM 與 SUMX 的區別

在此示例中,我將計算給定示例數據中的總收入。

上下文在這裡總是很重要。在這種情況下,每個特定日期都是每個特定結果的上下文。

LuckyTemplates 中 SUM 與 SUMX 的區別

如果我深入研究這個表,它會顯示從 Date 進入 Sales 表有直接的關係

LuckyTemplates 中 SUM 與 SUMX 的區別

然後,如果我查看在該模型下工作的數據,這就是一切組合在一起的方式。

LuckyTemplates 中 SUM 與 SUMX 的區別

因此,該關係鏈接到此處的訂單日期列。過濾此列中的特定日期後,相應的結果將顯示在“收入”列下。

從那裡開始,SUM將只對過濾結果進行一次大計算。

SUMX 作為迭代器

現在,我將對相同的示例數據使用SUMX,以便您可以看到差異。實際上,我可以在不觸及 Revenue 列的情況下計算該 Revenue。

當使用SUMX 函數時,它總是會要求一個表。請注意,這裡可以使用物理表或虛擬表。

LuckyTemplates 中 SUM 與 SUMX 的區別

為了得出收入,我將選擇銷售表。然後,我將放置一個表達式,它可以是該表中的度量值或特定列到此公式中,以便它可以開始在每一行上運行邏輯。如此處所述,表達式返回為表的每一行計算的表達式的總和。

LuckyTemplates 中 SUM 與 SUMX 的區別

由於示例數據包括訂單數量,我將在此處使用它來獲取總計。我還將使用單價。

LuckyTemplates 中 SUM 與 SUMX 的區別

將該公式拖入報告後,結果完全相同。

LuckyTemplates 中 SUM 與 SUMX 的區別

當然,它們都顯示相同的結果,因為它們都從相同的兩列中獲取數據——訂單數量和單價。

LuckyTemplates 中 SUM 與 SUMX 的區別

如果SUMX產生與SUM相同的結果,為什麼還要使用它呢?

使用 SUMX,邏輯不僅應用於整個列,而且應用於該列中的每一行。事實上,我可以刪除 Revenue 列並且仍然能夠檢索特定結果。

因此,想像一下在每一行都應用了該邏輯。它將第一行的訂單數量和單價相乘,然後將其保存到內存中。它對第二行和之後的所有其他行執行相同的操作,保存每個單獨的結果。

這意味著最終用於計算 SUMX 的不是表上的物理數據,而是內存中保存的結果


在 DAX 中使用迭代函數
在 LuckyTemplates 中使用迭代函數 SUMX 和 AVERAGEX
LuckyTemplates 數據模型用於使用 DAX 進行高級場景分析

結論

希望我能夠解釋 LuckyTemplates 中 SUM 與 SUMX 之間的主要區別,尤其是對於那些仍然不明白 LuckyTemplates 真正可以做什麼的人。

經驗法則是,如果它是一個可以通過聚合函數解決的簡單、直接的場景,請使用 SUM。但如果需要更高級的邏輯,請使用 SUMX。

SUMX 在您有幾千到幾百萬行的情況下也很有用。只要您的度量中引用的表和列在那裡,使用迭代函數就會使過程更加高效。

一切順利,


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的