在 LuckyTemplates 中使用 DAX 表函數

在 LuckyTemplates 中使用 DAX 表函數

我想向您介紹 LuckyTemplates 中的一組函數,稱為表函數。這些功能包括我們已經使用或在其他主題中提到的

還有一系列其他表函數,包括函數。但是,我們不會涵蓋所有這些。

如果您想更深入地了解這些功能,我建議您下載,查看,了解一些更具體的問題。您可以在本博客底部觀看本教程的完整視頻。

目錄

可視化表函數的工作原理

我想在本文中向您展示的是表函數的工作原理

如果你看這個例子,很難想像這個FILTER函數在幕後到底做了什麼。

在 LuckyTemplates 中使用 DAX 表函數

這是因為當你調用FILTER函數的時候,我們是沒有辦法看到後台正在創建的表的。

但是,我們可以通過僅使用公式創建一個新表來代替。

首先,您可以在創建新表時只需輸入表名即可複製表,如本例所示,我複制了Sales 表

在 LuckyTemplates 中使用 DAX 表函數

但是,您也可以在此處使用表函數。我要做的是使用FILTER,放入Sales 表,然後將Quantity 列設置為大於 2作為篩選表達式

在 LuckyTemplates 中使用 DAX 表函數

原始Sales 表有大約15,000行,但現在它只有4,700 行,因為結果已被篩選為僅查看Quantity 大於 2 的結果。

再舉一個例子,我將再次使用 FILTER函數,插入Products 表,使用Product Name 列作為Filter Expression,並將其設置為等於“Product 100”以返回包含一個產品的表。

在 LuckyTemplates 中使用 DAX 表函數

這就是公式在此表中運行時在幕後發生的情況。

在 LuckyTemplates 中使用 DAX 表函數

首先,通過Customer Name 列應用評估上下文。然後添加FILTER函數以通過將該Product 表減少為Product 100來提供額外的上下文。

之後,Product 100在後台被過濾,自動向下流到與Sales 表的關係,最終返回只有 Product 100 的 Sales 表

在 LuckyTemplates 中使用 DAX 表函數

值函數示例

我想向您介紹 LuckyTemplates 中另一個名為VALUES的表函數。此函數返回一個包含唯一值的單列表

例如在我們的日期表中,我們可以得到一個只有月份的表。

為此,我只需使用VALUES函數並放入Dates 表中的MonthName 列

在 LuckyTemplates 中使用 DAX 表函數

我們可以做的另一件事是將VALUES函數放在度量中。但同樣,很難識別度量中的過程,因為我們實際上看不到正在生成的表。

這就是為什麼這是評估這些表函數實際工作方式的好方法。

但是,如果我們想計算每個人的平均月銷售額怎麼辦?

在不知道如何組合我們之前接觸過的內容的情況下,如何做到這一點並不是很明顯。

我要做的是創建一個名為Average Monthly Sales的新度量。由於我們處理的是平均值,因此很可能首先想到使用

然而,我們實際上需要在這裡使用函數,因為需要一個迭代函數來評估月度平均值

在 LuckyTemplates 中使用 DAX 表函數

在迭代函數中,您可以放入一個作為其第一個參數。但是,您不僅限於使用物理表。您還可以使用表函數

由於VALUES是一個表函數,我將使用它並將其放入Dates 表的MonthInCalendar 列中。

迭代函數遍歷一個表,從VALUESMonthInCalendar形成的表將包含months 和 years 的唯一值

使用MonthInCalendar是必要的,因為如果我們只使用MonthName列,它將無法跨不同的年份使用。

為了完成度量的創建,我將在VALUES之後輸入Total Sales作為表達式。

在 LuckyTemplates 中使用 DAX 表函數

為避免混淆,我將轉到數據屏幕,選擇我的日期表,並將MonthInCalendar重命名為Month & Year

在 LuckyTemplates 中使用 DAX 表函數

然後,我將單擊按列排序並按MonthInYear 列對其進行排序,以確保其排序正確。

在 LuckyTemplates 中使用 DAX 表函數

最後,我現在可以拖放新的Average Monthly Sales度量,以便我們可以看到這些值。

在 LuckyTemplates 中使用 DAX 表函數

為了回顧我們所做的事情,VALUES函數返回一列唯一值。

客戶的當前上下文首先通過Customer Name 列獲取。然後,在幕後,我創建了一個包含month 和 year 的唯一值的單列表

AVERAGEX中,我遍歷每個月和每年,計算出每個客戶在這些月和年中的總銷售額。然後,每個月的銷售額都會保存到內存中。

最後,所有這些計算結果最終被平均得出Average Monthly Sales

這個過程非常通用,因為您可以將Year放在VALUES而不是Month & Year中來計算平均年銷售額

此外,您不僅可以使用日期, 還可以輸入產品名稱來查找產品的平均銷售額

通過結合這些技術,您可以快速找到獨特的計算。

ALL 函數示例

我想向您展示 LuckyTemplates 中的另一個表函數,稱為ALL,也稱為刪除過濾器函數

這個函數在很多方面都與VALUES函數相反。

舉個例子,我將創建一個名為All Customer Sales 的新度量,使用CALCULATE函數,並將Total Sales作為表達式。

然後,我將使用ALL函數並放入Customers 表中,因為您可以在其中放置一個表或一列。

拖入新度量後,您可能會注意到它提供與Total Sales 下的 Total相同的值。

在 LuckyTemplates 中使用 DAX 表函數

基本上,ALL函數刪除了Customers 表當前上下文中的所有過濾器。

因為我們在當前上下文中有Customer Name ,所以ALL函數忽略了Customers 表中的任何過濾器,而是返回每個結果的總和


如何使用 CROSSJOIN 函數 - LuckyTemplates 和 DAX 教程
DAX 語言中的迭代函數 - 詳細示例
優化 LuckyTemplates 表的高級技巧

結論

我們討論了一些關鍵的表函數以及它們在 LuckyTemplates 中的工作方式。

很好地理解這些函數是至關重要的,因為您實際上可以在同一個公式中組合很多函數。

當您開始習慣您的公式組合時,您可以創建更有趣的計算。

一切順利,


什麼是 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 網關?所有你必須知道的