在Power Query中,如何一次對多個列進行高級轉換


​你在PQ中僅能使用UI界面將簡單的轉換應用於多個列,在本文中,將介紹如何一次對多個列應用高級轉換。你也可以用它來使用自定義函數。最后,對於自定義M函數的老粉:你還將獲得一個新的“ TranformAllMyColumnsAtOnceHowILikeIt”函數。

 

問題-我太難了

查詢編輯器中的“轉換”選項卡對你選擇的列是很敏感的。因此如果你如示列般選擇多列, 一些數字轉換將顯示為灰色,從而無法訪問:

許多圖標將變灰

所以,如果乘法圖標變灰,如何對所選列乘以10?

解法-So Easy

只需檢查要轉換的列並選擇一個可訪問的虛設函數。理想情況下,它應包含與預期函數一樣多的參數,但這不是強制性的。在我們的例子中,我選擇了一個帶有2個參數的函數(用於數字和乘法器):舍入->舍入非常適合這里。

我在小數位數字段中輸入乘數(10)的數字;

 

數字區域

現在,你是否正在問自己在哪里填寫數字本身的引用? 然后在編輯欄中簽出自動生成的M代碼:

 

自動生成的公式

 

查詢編輯器已自動將引用設置為數字,並用下划線(_)表示。這表示自動創建的(唯一)函數參數,因此,它使用了語法“each”關鍵字。

如你所見,已經為表的每個字段創建了所有代碼。因此,我們現在唯一需要調整的是函數本身。我改動“each Number.Round(_, 10)” 到 “each _ * 10” 通過將其復制粘貼到每個列表達式中:

 

編輯公式

 

使用自定義功能

如何將“RemoveHtmlTags”功能應用於整個表, 參考如下:

1.從GitHub復制功能代碼

2.在查詢編輯器中創建一個空白查詢

3.在高級編輯器中編輯該查詢,並將所有現有代碼替換為復制的代碼

4.命名查詢“ fnRemoveHtmlTags”

5.現在,你應該檢查所有列並應用虛擬轉換

6.最后,將生成的代碼的功能部分替換為“ fnRemoveHtmlTags”,如下所示:

 

刪除HTML標簽

 

你是否想知道“each”都去了哪里? 實際上,對於僅帶有一個參數的函數來說,這是不必要的。

 

更高效率的函數

如果要將轉換應用於表的所有列, 以下功能將派上用場。只需填寫3個參數(表格,函數和類型),然后,最后可以使用可選的“ ColumnNames”參數 。如果只想將轉換限制到這些列,則可以在其中提供列名稱的列表。

必須如下使用參數:

1.參考表格本身

2.參考函數

3.要轉換的列類型(注意:你必須使用正確的類型(無引號)且非文字表達式)

4.可選參數: 你想要將轉換限制為某些列的列名列表

 


如何使用書簽來延遲加載Power BI 視覺對象

● 如何設計卡片圖突出顯示與警告

●  Power BI 12月產品功能更新—視頻上線

● Power BI 12月產品功能更新文檔

Power BI數據集內存挑戰—節省40%以上!

 

技術交流

1.Power BI免費下載:http://www.yeacer.com/

    Microsoft Power BI Desktop中文最新版:下載地址

2.歡迎加入的Power BI技術群,目前正在學習階段,有興趣的朋友可以一起學習討論。 

   Power Data技術交流群:702966126 (驗證注明:博客園Power BI) 

   更多精彩內容請關注微信公眾號:悅策PowerBI          


如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!歡迎各位轉載,作者博客:https://www.cnblogs.com/yeacer/ 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM