從Excel到PQ:關於替換功能函數——Text.ReplaceValue

2021-03-02 Excel聚焦

你好,我是小必,感謝與你在這裡相遇。

今日內容:Power Query中關於替換功能

在Power Query中提供了強大替換函數與功能。可以通過M公式對table,lsit以及record中的內容進行替換。本期內容主要講解Power Query中關於替換的函數Table.ReplaceValue函數。案例的主要來源於微信裡關於Power Query的一個案例。

如上圖所示,將左側的數據替換成右側的數據。即將左側的學科列的「算術」與「數數」的內容替換成「數學」。

 

如果通過Power Query中的滑鼠操作的方法,可以使用【轉換】選項卡下中的替換值的內容,分別進行兩次替換成想要的內容。如圖所示:

 

再執行一次上面的步驟即可完成所有的替換。再看一下上面的步驟生成的公式:

替換1 = Table.ReplaceValue(源,"算術","數學",Replacer.ReplaceText,{"學科"}),替換2 = Table.ReplaceValue(替換1,"數數","數學",Replacer.ReplaceText,{"學科"})

雖然可以將上面的兩個公式嵌套到一起去,但是還是顯得十分地麻煩與冗長。

 

再來查看一下關於Table.ReplaceValue函數的語法:

function (table as table,oldValue as any,newValue as any,replacer as function,columnsToSearch as list) as table

從上面的該函數的語法可以看出,輸出的結果為一個表,第一個參數是一個table,也就是源是一個表,要替換的內容為any,可以是任意類型,替換後的類型也是一個any,第4個參數比較有意思的是一個function,也就是說第4個參數可以是無限擴展的。在上面的通過滑鼠操作的生成的第4個參數是一個替換器Replacer.ReplaceText。那麼不考慮這個替換器,在手工書寫M的時候還可以自己構造一個函數做為替換器。

 

故上面的替換的兩個步驟可以寫成一個公式,即:

= Table.ReplaceValue(源,{"算術","數數"},"數學",(x,y,z)=>if List.Contains(y,x) then z else x,{"學科"})

這個公式很有意,也十分地巧妙。但是對於初學者來說,該公式中定義的第4個參數為一個function,理解起來不是特別地好理解。上述公式中的x指的是當前的操作的行,y為要替換的list列表,即:{"算術","數數"},而z為替換後的新值。所以這三個值都是變量。List.Contains(y,x)這一部分是判斷當前的學科的值是否在y中被包含,List.Contains是按y的類型來決定的,返回的結果邏輯值,如果包含,那麼返回TRUE,否則返回FALSE。如:第2行中學科的值為「算術」,為上述公式中的x,判斷y中是否包含x,即「算術」是否在list列表{「算術」,「數數」}中出現過,而「算術」正好出現過,所以結果為TRUE。

再根據IF函數來判斷,如果List.Contains的結果為TRUE,則返回結果為「數學」,如果為FALSE,也就是說不包含時,返回結果為當前的學科的值。

 

在Power Qeury中的M公式中,經常會出現的一個條件判斷語句:

除此之外,還有一個與之相匹配的的語句,也叫容錯語句。類似於Excel中的iferror函數。

需要注意的是這兩個語句都是小寫的形式,一定要注意。

相關焦點

  • Excel字符替換:REPLACE函數使用技巧
    Replace函數,顧名思義,就是「替換」,即功能就是執行替換操作,替換字符中的指定字符。REPLACE函數功能替換指定字符數的文本,使用其他文本字符串並根據所指定的字符數替換某文本字符串中的部分文本REPLACE函數語法REPLACE(old_text,start_num,num_chars,new_text)翻譯白話格式:REPLACE(替換其部分字符的文本,是要用new_text替換的old_text
  • Excel進階函數之REPLACE()
    但對字符串的修改、增加、刪除顯得有點不足,本節使用REPLACE函數輕鬆對字符串進行上述操作。=Replace(old_text,start_num,num_chars,new_text)要替換字符串,開始位置,替換數量,新文本函數講解:1、替換數量可為0,即在開始位置,新文本增加2、新文本輸入""時,代表將需要替換數量文本刪除3、替換數量不為0,即對指定數量文本修改
  • 函數哥:你不得不掌握的數據替換技能-replace函數!
    函數哥:你不得不掌握的數據替換技能-replace函數!在excel數據處理過程中,關於某些指定的數據進行替換,或指定數據中的某些位置的字符進行替換的方法有很多,最直接、簡單、粗暴的是"ctrl+F"(查找和替換),這是我們常用的工具,但這項功能僅僅是針對單元格的整體處理,對某一單元格數據中的字符或字節處理就稍顯不足。今天,為大家分享replace函數的運用技巧,就是處理某一文本中字符的處理,還是先來看看它的戰鬥力吧!
  • excel替換函數教程:substitute函數和replace函數的用法及案例
    在excel進行文本替換,除了用查找替換功能,也可以用函數來實現。這節課,我們就來講下substitute函數和replace函數的用法及案例。首先,來看一下案例圖表:上半部分表格,需要的是將A列單元格裡的B列單元格內容替換掉,也就是刪除掉,這種情況用的是substitute函數。
  • 「Excel技巧」Replace替換函數的介紹和實例應用總結
    學Excel,肯定要學函數,函數學得好,在Excel應用中就會如魚得水。今天我們一起來學習一下,Excel中的函數之有:replace函數。Replace函數,顧名思義,就是「替換」,即功能就是執行替換操作,替換字符中的指定字符。
  • excel中的替代函數——replace和substitute函數的應用實例
    在excel中,常用的替換函數有replace和substitute函數,這兩個函數都可以替換單元格中的部分內容,功能和ctrl+H的功能類似,但是使用函數的目的一方面不會破壞原數據,另一方面與其他函數結合可以實現更多功能,對於substitute的參數=substitute(單元格,被替換的字符串,新字符串,指定替換第幾個),第四個參數可以省略
  • Excel函數學習10:REPLACE函數
    微信公眾號:excelperfect REPLACE函數基於指定的字符數和開始位置替換文本裡的字符。什麼情況下使用REPLACE?REPLACE函數可以替換字符串中的字符,例如:修改電話號碼中的區域代碼使用冒號和空格替換第一個空格使用嵌套的REPLACE插入連字符REPLACE函數的語法REPLACE函數的語法如下:REPLACE
  • Excel Replace函數與ReplaceB函數的使用方法,含7個替換實例
    Replace函數用於替換指定的字符數,ReplaceB函數用於替換指字的字節數,這也是它們的區別所在。二、Replace函數的使用方法及實例(一)把單槓替換為雙槓1、選中 E2 單元格,輸入公式 =replace(a2,3,1
  • Excel知識第15期:同為替換,REPLACE函數和SUBSTITUTE函數該用誰
    在第14期Excel知識的介紹中,介紹了REPLACE函數的使用方法,知道了該函數是用來進行字符替換的函數。其實,在Excel的函數當中,還有一個替換函數,它就是SUBSTITUTE函數。在英文當中,replace和substitute都有替代,替換的意思,那麼在Excel中,二者又有什麼區別呢?在上期內容
  • 代碼審計Day9 - str_replace函數過濾不當
    / ,所以上圖程序中的 str_replace 函數過濾是有問題的。功能 :子字符串替換定義 : mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ]
  • 電子表格實用的替換函數replace介紹
    大家好,今天給大家介紹在電子表格另一個比較實用的函數:replace,它的中文意思是「替換」,也就是具有替換的功能,不少的朋友可能就會說,在電子表格實現替換功能會呀,不就是點擊替換對話框,輸入要替換的內容不就OK了?
  • excel教程 含金量超高的text函數使用方法及功能詳細解析
    text函數,作用是將各種形式的數值轉化為文本,並可使用戶通過使用特殊格式字符串來指定顯示格式。tetext函數在工作中是常見的一種函數,我們現在就來學習一下text函數用法吧。text函數的語法結構為:      TEXT(value,format_text)      Value 為數值、計算結果為數字值的公式,或對包含數字值的單元格的引用。
  • Excel字符函數(5):REPLACE、SUBSTITUTE查找替換函數之區別
    如果需要在某一文本字符串中替換指定的文本,使用函數 SUBSTITUTE;如果需要在某一文本字符串中替換特定位置處的任意文本,使用函數 REPLACE下圖中,REPLACE函數,從A2單元格的第4位取1位,替換為「」空字符(等同於刪除小圓點.)
  • 看不懂系列:Table.ReplaceValue函數
    = Table.ReplaceValue(Source,each [子級別1],"替換測試",Replacer.ReplaceValue,{"子級別1"})三、進階內容介紹重新回顧一下Table.ReplaceValue函數的各個參數:Table.ReplaceValue(table as table, oldValue
  • Excel函數upper、lower、proper和text在實際案例中的運用
    函數upper函數upper的基本語法形式是upper(text),功能就是將text轉化為都是大寫的文本(針對英文),其中的text可以是引用的單元格或文本字符串,我們接下來就以一個具體的Excel工作表的內容來進行舉例,該Excel工作表的內容包括三項,分別是公司名稱,大寫公司名稱和小寫公司名稱
  • excel關於函數if與函數or聯合運用的操作技巧
    exceloffice軟體作為目前功能最為全面的辦公軟體而深受人們的青睞,其中的excel就深受廣大辦公族的喜愛,excel中函數的靈活應用能為人們的工作縮短時間,極大地提高工作效率,今天就為大家講述excel關於函數if與函數or聯合運用的操作技巧。
  • excel函數技巧:妙用「=」進行查找替換函數功能
    查找替換是Excel裡一個非常基礎的功能,按Ctrl+F可以直接打開「查找」對話框,按Ctrl+H可以直接打開「替換」對話框,這點小技巧我想各位都知道這三個方法,都是在查找替換中巧用「=」符號,實現了以往用函數才能解決的功能。趕緊收藏吧!
  • Excel如何通過函數進行數據替換和同時多數據替換?
    Excel如何通過函數進行數據替換?excel中的數據進行數據替換的時候,如何通過函數公式進行部分替換。2.輸入函數replace,在下拉菜單中可以雙擊。4.然後輸入需要替換的位數——11,,替換的數字量——1個。
  • Excel實例教學:REPLACE替換函數經典案例
    關鍵詞:替換, 隱藏後4位手機號碼