當前位置: 妍妍網 > 辦公

吊打Textsplit、腳踢Text,新函式Regexp到底有多牛?

2024-06-22辦公

蘭色收到一個同學提問:

如下圖所示要求把左側考核表中的正數和負數分別提取出來求和。如

1+3+9+6= 19

-3-6-4-5=- 18

這個問題看上去也不太難,好象可以用分列或一般的截取函式就可以搞定,但....如果你仔細看就會發現,其中難題不好辦:一個格式有多行內容,如上圖左側的藍色單元格中,需要提取出3個數位。

蘭色拿出看家本領,用textsplit +text函式寫了2個看上去很絕妙的公式

正值和:

=SUM(--TEXT(TEXTSPLIT(CONCAT(C3:C6),,{"(","分"}),"0;!0;;!0"))

負值和

=SUM(--TEXT(TEXTSPLIT(CONCAT(C3:C6),,{"(","分"}),"!0;-0;;!0"))

用textsplit拆分,再用text分別提取出正值和負值,這簡直是一個天才的思路。

當蘭色正自我淘醉時,一個新函式的出現讓蘭色自豪受到暴擊。它就是正則函式,在WPS它是 Regexp ,而在excel中則分身為3兄弟( 提取、替換和判斷

一起看看用正則函式有多簡單

一、在 WPS表格 中公式

正值求和

=SUM(--REGEXP(CONCAT(B2:B5)," \+ \d+"))

負值求和

=SUM(-- REGEXP (CONCAT(B2:B5)," \- \d+ "))

註: \+ ,因為+是特殊符號前面需要添加\轉換普通字元, \d+ 是任意長度整數

二、在Excel表格中公式

=SUM(-- REGEXEXTRACT (CONCAT(C3:C6),"\+\d+", 1 ))

和WPS的區分別,需要用 REGEXEXTRACT函式, 最後的參數 1 表示提取所有符合條件的,省略時只提取第1個。

蘭色說 學過編程的同學都知道,正規表式功能超級強大,同時規則也多的嚇人,所以本文的範例只能算入門中的入門層級,想完全學會,需要幾個月功夫。另,這個函式目前只能在office365預覽版和WPS內測版( 買過四合一大全套的同學去群裏下載WPS內測版的安裝程式 )中可用。

蘭色根據多年經驗,錄制了一全套適合新手和初中級階段使用者學習的Excel教程。包括 Excel表格92個函式用法 119個使用技巧 透視表從入門到精通50集 圖表從入門到精通185集 。詳情點選下方連結