使用 Power Query 高級編輯器提取特定文本之前的值

使用 Power Query 高級編輯器提取特定文本之前的值

在本教程中,我將演示如何使用 Power Query 高級編輯器在每次出現特定文本之前提取值。有很多方法可以實現這一點,但我認為展示一個完全編碼的解決方案會很有趣。您可以在本博客末尾觀看本教程的完整視頻。

的一位成員在下面發布了這個場景。我將要演示的完全編碼的解決方案更高級,但我會將其分解成非常小的部分,以便我們可以檢查每個步驟的結果。

使用 Power Query 高級編輯器提取特定文本之前的值

目錄

使用 Power Query 高級編輯器和 M 函數

我將創建示例查詢的引用並添加一個自定義列,我們可以在其中構建我們的邏輯。

使用 Power Query 高級編輯器提取特定文本之前的值

我要做的第一件事是拆分該文本列。所以我們將使用函數Text.Split,然後放置一個左括號。它需要一個文本,所以我們可以指向我們的文本列。接下來,它需要一個分隔符作為文本。所以在一組雙引號之間,我們可以添加分號,然後關閉括號,然後按確定。

使用 Power Query 高級編輯器提取特定文本之前的值

這樣,它為我們提供了一個包含分隔文本值的列表。

使用 Power Query 高級編輯器提取特定文本之前的值

我們仍然需要做一些清理工作,因為這些文本字符串中可能包含一些前導或尾隨空格,我們需要擺脫它們。這意味著我們必須更改每個列表的內容,並且有一個名為List.Transform的M 函數

因此,在公式欄中,我將添加 List.Transform。它需要一個列表,我們已經給出了,然後加上一個逗號。接下來是轉換,所以我們要修剪這些文本。所以,我將添加Text.Trim,然後是右括號,然後按確定。

使用 Power Query 高級編輯器提取特定文本之前的值

現在,讓我們打開 Power Query 高級編輯器窗口,因為就像我說的,我想把它分成非常小的部分。我將使用變量來存儲每個步驟的中間結果。

我們可以在let表達式中創建一組以逗號分隔的變量。我將第一步稱為ListTexts。最後一個右括號是我們添加列函數的表,因此也將其移至新行。在第一個表達式的末尾,我們必須加一個逗號,這樣我們就可以在那裡添加一個新的表達式。

然後,我們創建一個新的變量名,我稱之為FindPositions。整個字符串已被分離和清潔。我們所要做的就是找到我們正在尋找的字符串的位置。為此,我們將使用一個名為ListPositionOf的函數。添加左括號,我們可以返回我們已經創建的變量 (ListTexts)。

接下來,我們輸入要查找的值,即兩個大寫字母 A。let 的對應項是in子句,因此我們需要添加它並將其返回給FindPositions。然後,按完成。

使用 Power Query 高級編輯器提取特定文本之前的值

此函數採用可選的第三個參數,因此在公式欄中,我們可以添加第三個參數。這樣,我們得到了一個列表。

使用 Power Query 高級編輯器提取特定文本之前的值

目標是提取搜索字符串之前的值,因此我們需要移回單個位置。但是,我們也有零。該字符串中第一個初始值之前沒有值,我們必須避免錯誤,因此我們需要排除那些零,因此我們再次返回高級編輯器並添加一些邏輯。

使用 Power Query 高級編輯器提取特定文本之前的值

我們仍然需要回到一個位置。因此,在高級編輯器中,我們可以使用List.Transform來幫助我們。

使用 Power Query 高級編輯器提取特定文本之前的值

接下來,我們將使用 List.Transform 獲取字符串並訪問列表中的項目。

使用 Power Query 高級編輯器提取特定文本之前的值

最後一步是將列表中的所有文本值組合成一個字符串。因此,我將在我們的邏輯中為我們使用函數Text.Combine 的結果添加另一行。

使用 Power Query 高級編輯器提取特定文本之前的值

這就是您如何使用完全編​​碼的解決方案在特定文本之前提取字符串。

使用 Power Query 高級編輯器提取特定文本之前的值


分隔數據——使用 LuckyTemplates 提取記錄
從 Power Query 中的記錄和列表中提取值
在 LuckyTemplates 中動態反透���多個列

結論

在本教程中,您了解瞭如何提取特定文本之前的字符串,我們使用了多個文本和列表 M 函數來完成該任務。我希望你喜歡這個。您可以觀看下面的完整視頻教程,詳細了解分步解決方案。

一切順利!

梅麗莎


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