LuckyTemplates 中的表格:類型和區別

LuckyTemplates 中的表格:類型和區別

今天我想花點時間談談 LuckyTemplates 中的表。我們總是遇到每個問題的表格,但我們並沒有真正花很多時間單獨考慮它們。您可以在本博客底部觀看本教程的完整視頻。

LuckyTemplates 成員 Ashton 最近發了一篇帖子,他總是能提出很好的、發人深省的問題。他的查詢讓我想到了一種我經常看到並希望在本教程中解決的模式。

這不是他犯的錯誤,但這是一個常見的錯誤。我多次看到人們會說他們在使用虛擬表時遇到問題,例如,當它首先不是虛擬表時。

LuckyTemplates 中的表類型之間存在真正的區別。

我想做的類比是,如果有人說,“嘿,我最近收養了一隻狗,我在養狗時遇到了麻煩,想知道你是否可以幫忙”,而那不是狗,而是狼。它們都是犬科動物,但您需要考慮一些非常大的區別。

因此,儘管它們都屬於同一個系列,就像 LuckyTemplates 中的表一樣,但它們是真正影響解決方案以及如何使用這些表的重要區別。因此,我想做的是重新審視 Ashton 的問題,然後深入研究您在 LuckyTemplates 中找到的表之間的差異,並展示這如何影響您處理它們的方式。

這個問題很簡單,但比最初看起來的要多一些。他有一個簡單的數據集,只包含客戶、他們購買的水果類型、數量,然後只是一個索引號。

LuckyTemplates 中的表格:類型和區別

他想要一個具有多選功能的切片器,這樣如果你選擇了橙子,它會拉出所有購買橙子的客戶,但它也會顯示他們還購買了什麼。

LuckyTemplates 中的表格:類型和區別

所以,如果我們關閉這個選擇(橙色),我們就可以看到完整的數據集。我們還可以看到,這兩個客戶(Joe 和 Mary)購買了橘子,但他們每個人還額外購買了一次。

LuckyTemplates 中的表格:類型和區別

因此,我們知道的第一件事是水果切片機必須是一個斷開連接的切片機台。如果它是一個普通的切片器,你會點擊橙色,它基本上會把桌子上除了橙色以外的所有東西都去掉。我們還知道,因為這是動態的,所以我們遇到了虛擬表問題。

因此,讓我們深入研究一下,但在此之前,讓我們看一下我們在 LuckyTemplates 中找到的不同類型的表。

目錄

LuckyTemplates 中的三種表

我們經常找到三種類型的表。第一個是最常見的,它是一個物理表,這實際上是您的主要數據。每當您通過此選項或在Power Query中直接獲取數據或輸入數據時,您都會執行引用或複制,或者通過空白查詢加載數據,如日期表,這是一個物理表。

LuckyTemplates 中的表格:類型和區別

物理表不是完全動態的,但它確實具有所有這些增加文件大小的其他特徵,因為它是物理數據。它可以在 Power Query 中訪問。通常,數據模型中的關係是通過物理關係建立的。他們不一定是,但他們通常是。它們用於原始數據,您可以通過數據視圖或 Power Query 將其可視化。

LuckyTemplates 中的表格:類型和區別

物理表不是完全動態的,但它確實具有所有這些增加文件大小的其他特徵,因為它是物理數據。它可以在 Power Query 中訪問。通常,數據模型中的關係是通過物理關係建立的。他們不一定是,但他們通常是。它們用於原始數據,您可以通過數據視圖或 Power Query 將其可視化。

經常與虛擬表混淆的是這個計算表或我們也可以稱為 DAX 表達式表。這與通過DAX表達式創建的計算列有直接的類比。這是通過“建模”選項卡和“新建表”選項完成的,然後您輸入 DAX 表達式。

經常與虛擬表混淆的是這個計算表或我們也可以稱為 DAX 表達式表。這與通過 DAX 表達式創建的計算列有直接的類比。這是通過“建模”選項卡和“新建表”選項完成的,然後您輸入 DAX 表達式。

LuckyTemplates 中的表格:類型和區別

從下面的對比表中可以看出,計算表與物理表或虛擬表在配置文件上有很大不同。它不是完全動態的。

它需要刷新才能獲取新信息。它確實增加了物理文件的大小。與直接物理表不同,它無法在 Power Query 中訪問。就像計算列不會顯示在 Power Query 中一樣,計算表也不會。但它確實擁有物理表的其他方面。

LuckyTemplates 中的表格:類型和區別

通常,計算表用於支持表,更常用於調試。現在有更好的工具,如 DAX Studio 和 Tabular Editor,因此它的使用頻率不高。您通過數據視圖查看此表。

坦率地說,就像計算列一樣,它通常是需要遠離的東西。有比通過計算表更好的處理方法。

然後類比到措施是真正的虛擬表。這些是通過 DAX 度量代碼在度量的上下文中創建的。與其他兩種類型的表不同,它們是完全動態的。它們不會增加文件大小,因為它們是按需的。就像度量一樣,虛擬表是在內存中按需計算的,並且都在需要它們的上下文過程中使用。

它們在 Power Query 中不可訪問。你不能把身體上的關係放在那些上面。如果您在數據模型中將它們關聯起來,則可以使用虛擬關係來實現,最常見的是使用

虛擬表用於度量中的中間計算,因為度量不能返回表值,它必須返回標量值。因此,您通常將這些用作生成縮放器的臨時計算,縮放器是您的測量結果。

您可以在 DAX Studio、Tabular Editor 或 New Table 等工具中可視化這些表,這可能也是最不理想的方式,因為它會用一堆額外的表弄亂您的數據模型,除非您刪除它。

虛擬表的 DAX 度量解決方案

回到阿什頓的問題,通過查看表格,我們可以看出它是動態的。我們也可以做多種選擇,這會在運行中完全改變。因此,我們知道它是一個虛擬表,因為其他兩個(物理表和計算表)不是完全動態的。正如我在開頭提到的,我們還知道它是一個斷開連接的表。

LuckyTemplates 中的表格:類型和區別

我使用 Rubber Duck 概念來解決這個問題。在之前的教程中,我談到了 rubber ducking 的概念,它是在開始深入研究特定 DAX 之前針對問題開發一個概念性的解決方案。

因此,對於這裡的橡皮鴨解決方案,我所做的基本上是將這個斷開連接的切片器表放在一起。然後,我收穫了那些切片器的價值。接下來,我想出了一個虛擬表,可以根據購買斷開連接表中選擇的客戶來過濾客戶。

然後,我獲取了該客戶列表並過濾了這些客戶的原始數據集,以得出客戶和這些客戶的購買情況,以及切片值。

讓我們看一下具體的衡量標準,看看結果如何,以及您在使用虛擬表時的一些注意事項。

LuckyTemplates 中的表格:類型和區別

第一件事是為我們的價值觀制定兩個收穫措施。第一個是斷開連接的切片器的值。

由於我們在需求中有多項選擇,這意味著我們不能只使用。所以我所做的是使用函數在那個斷開連接的切片器中捕獲一個或多個潛在的選擇。對於客戶端,由於我們要在評估的每一行上都有一個客戶端,因此我們可以使用 SELECTEDVALUE。

接下來我做的是這個以開頭的虛擬表變量 ( VAR Buyers ) 。然後,它會根據客戶購買的水果是否符合我們斷開連接的切片器的價值觀來過濾這些客戶。

我們可以通過 DAX 查詢來檢查這一點。我們可以在 DAX Studio 或表格編輯器中執行此操作。因此,讓我們在這裡進行虛擬表測量,將其複製到表格編輯器中。我們將確保它為我們提供了我們期望看到的值,即 Joe 和 Mary。

LuckyTemplates 中的表格:類型和區別

DAX 查詢始終返回表,並且它們始終以 EVALUATE 開頭,因此我們在此處添加 EVALUATE。但是,我們沒有得到任何結果。這是因為選定的斷開連接水果 ( SelDisconnFruit ) 收穫變量不知道切片器。這是斷章取意的。

所以測試的方法是人為設置切片器值。我們將在這裡用一張小桌子替換 SelDisconnFruit。在波浪形括號之間輸入Orange(該切片器的值)。現在,我們在這裡得到了結果,即喬和瑪麗。這樣,虛擬表就可以像我們想像的那樣工作了。

LuckyTemplates 中的表格:類型和區別

所以我們現在可以回到我們的度量表達式。虛擬表的挑戰之一是它們很容易在一個度量中創建虛擬表但是您不能將虛擬表作為 measure 的結果返回。所以我們需要返回一個標量,但它捕獲了虛擬表的相關方面。

所以在這裡,我們有一個虛擬表,它告訴我們哪些客戶購買了價值切片器中的水果。我們可以設置另一個變量 ( VAR BuyerIn ) 來表示,如果所選客戶在該買家的表中,那麼它會得到一個 one如果不是,它會得到一個零

LuckyTemplates 中的表格:類型和區別

然後我們獲取結果並將其放入篩選器窗格。我們說,主要買家的衡量標準是一個,這將是購買的客戶,在這種情況下,是橙子。

LuckyTemplates 中的表格:類型和區別

因此,通過這樣做,我們將原始數據表過濾為正確的記錄。您可以看到它現在創建了那個虛擬表,並且它根據每個選擇正確地進行了過濾。


LuckyTemplates 中迭代函數內的虛擬表 – DAX 概念
使用 TREATAS 函數在 LuckyTemplates 中創建虛擬關係
如何在虛擬表中使用 COUNTROWS DAX 函數

結論

這就是我今天想要介紹的大部分內容。這是一個相當簡單的虛擬表示例,但重點是物理表、計算表和虛擬表之間的區別。

關於虛擬表,有很多有趣的問題需要重新審視,尤其是在調試虛擬表度量方面。這是我將在接下來的幾週內回來討論的內容,但現在,這就是本教程的全部內容。

乾杯!


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