什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
在今天的教程中,我將展示如何在 LuckyTemplates 中使用路徑和文本函數從給定的文本字符串中提取某些單詞。您可以在本博客底部觀看本教程的完整視頻。
在這個例子中,我們有兩行數據集,我們想使用文本函數來提取名字,即 Antriksh 和 Brian,然後是中間名,然後是最後的名字。
讓我們開始吧。我將向您展示如何通過使用 DAX 中提供的兩組不同的函數來做到這一點。我將在DAX Studio中執行該活動,以便您可以在每個步驟中看到我正在編寫的代碼實際上將返回什麼。
目錄
在 LuckyTemplates 中使用文本函數的 DAX 代碼
在 DAX Studio 中,我們將編寫代碼。我們需要做的第一件事是寫關鍵字DEFINE,然後是COLUMN。我正在創建一個僅在我在 DAX Studio 中打開的會話期間存在的虛擬列。我在此處創建的任何列實際上都不會保留在我們在 LuckyTemplates 中擁有的數據集中。
接下來,我將提供將在其中創建該列的表名。該列的名稱將是First Name。
要從我們已經看到的數據集中提取名字,我需要找到第一個空格的位置。獲得該位置後,我將提取第一個字符。我將提取從第一個位置開始直到第一個空格的位置的單詞。
為此,我將創建一個變量 ( FirstSpace ),這基本上是一個搜索操作。所以我會寫Names,然後是Data,這是我數據庫中的原始列。然後我可以返回FirstSpace變量,以便我們可以看到它將返回什麼。
為了能夠可視化結果,我們需要編寫EVALUATE,這將觸發 DAX 代碼並提供我們在模型中擁有的表名。
如果我按 f5,您可以看到針對每個名稱,我們都有一定數量的搜索。它說第一行有九個,第二行有六個。
在第一行中,名稱 Antriksh 僅包含八個字符,並且它返回一對多,因為它正在計算空格的位置。要得到八,我可以寫減一。要返回第一個單詞,我將使用LEFT函數並寫入我想從中提取名字的文本字符串,即Names Data。然後,我想提供要提取的字符數。我會寫FirstSpace然後關閉它。
如果我單擊 f5,您會看到我已從該字符串中檢索到名字。這就是您可以使用 LEFT 文本函數提取名字的方法。
現在,讓我們從您自己的文本字符串中提取中間關鍵字或中間名。請注意,有多種方法可以提取中間關鍵字,但我將使用最基本的一種,它非常容易理解。
我將創建另一列Names [Middle Name]。然後,我將創建一個變量,它將保存 DAX 代碼當前正在迭代的字符串。這樣就可以容納完整的字符串。因此,FullName將等於Names [Data]。
然後,我需要將我已經在先前計算的列中提取的名稱存儲在一個變量中。為此,我將編寫VAR FirstName並使用Names[FirstName]列。
接下來,我將創建另一個變量,將其命名為NewText。我將簡單地從 FullName 變量中刪除名字,因此結果變量或結果列將僅包含 DAX Sharma 和 R Julius。
我們需要注意的另一件事是 DAX 和 R 之前的前導空格。要刪除它,我將在代碼中添加TRIM 。TRIM 刪除文本字符串中的任何額外空格。
接下來要做的是確定 DAX 和 R 關鍵字之後存在的空格的位置。為此,我可以編寫一個變量StartPos(開始位置),這基本上是在 NewText 變量中搜索空白區域。然後,我需要減去 1,這樣它只返回 3,在 R 的情況下是 1,而不是 2。
我需要創建的最後一個變量是RESULT,其中我只打算使用LEFT函數提取值 DAX 和 R。現在我們已經檢索到我們想要從原始字符串中提取的 DAX 和 R 關鍵字。
接下來,我們將從原始字符串中提取姓氏。為此,我將創建另一列Names[LastName]。然後,我將首先創建一個變量 ( FullName ) 來存儲該原始字符串。
我要創建的下一個變量是ReplaceSpaceWithTilde,它將用我認為原始字符串中實際上不存在的特定字符替換原始字符串中存在的每個空格。稍後我將使用該字符來標識最後一個空格的位置。這樣,您可以看到所有空格都已替換為波浪字符 ( ? )。
接下來,我將創建另一個變量 ( RemoveSpace ),它將刪除原始字符串中的空格。我想找到空間,然後用空替換它。下一個變量PosLastTilde(最後一個波浪號的位置)基本上將從 ReplaceSpaceWithTilde 變量的長度中減去 RemoveSpace 的長度。這給了我們 2。
現在,我將編寫更多代碼以將其替換為波浪號字符。
現在我需要做的就是用它來提取單詞 Sharma。我將創建一個變量Result,並且我將使用MID函數。
使用路徑函數縮短 DAX 代碼
現在讓我們繼續看看我們如何使用路徑函數來縮短我們在 LuckyTemplates 中使用文本函數編寫的代碼量。您會驚訝地發現,儘管路徑函數並不是為這些類型的操作而主動設計的,但通過使用這些函數,您可以轉換所有這些代碼。
因此,我將通過按下控制鍵並連接到 LuckyTemplates 文件來創建 DAX Studio 的新會話。我將指定 DEFINE 和 column 關鍵字,然後是表名中的路徑和虛擬列的名稱,它只會在本次會話中持續存在。
然後,我將使用SUBSTITUTE 函數,我需要在第一個參數的原始列中添加路徑,然後用管道運算符替換空格。路徑函數使用管道運算符從父子層次結構中提取子項。
接下來,讓我們使用EVALUATE和 Names 以及表的名稱返回該列的結果。我按 f5,您會看到我們收到了一個字符串或另一列,其中包含原始字符串中已有的每個字符,由豎線運算符 (|)分隔。
路徑函數將使用該管道運算符提取第一個中間字符和最後一個字符。因此,我將創建另一個依賴於第二列結果的列。我可以指定Column Names [First Name],我將使用函數PATHITEM。
在第一個參數中我需要做的就是指定我們已經在上一列中計算的列。在第二個參數中,我需要提供一個關鍵字或我想要提取的字符。然後,我將提供數字 1。對於列Middle Name,我將提供數字 2 和 3 作為Last Name。
什麼是 LuckyTemplates Desktop
DAX 公式清理工具中的 DAX Studio:
LuckyTemplates 中 DAX 代碼邏輯格式的一些更新
結論
我已經向您展示瞭如何在 DAX 代碼中使用 LuckyTemplates 中的文本函數從給定的文本字符串中提取某些單詞。我還演示瞭如何使用路徑函數來縮短這些代碼。所以到目前為止,您可以看到使用路徑函數從字符串中提取單詞是多麼容易。而對於文本函數,我們不得不編寫大量代碼。
在給定字符串中有多個單詞的情況下,您可以使用另一個路徑函數。您可以使用 PATHITEMREVERSE 函數,而不是手動計算有多少個分隔符,然後在 PATHITEM 函數中提供分隔符的計數。
如果您對本教程有疑問,可以在下面的評論部分提問。查看下面的鏈接並觀看完整視頻以及有關此主題的更多詳細信息。
一切順利!
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的