蘭色收到一個同學提問:
如下圖所示要求把左側考核表中的正數和負數分別提取出來求和。如
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集 。詳情點選下方連結