最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

效率翻倍! wps中regexp+asc+evaluate公式快速結算雜亂內容數(shù)據(jù)的技巧

  發(fā)布時間:2025-07-30 09:52:12   作者:佚名   我要評論
wps表格中記錄的內容,有單位有數(shù)據(jù),想要根據(jù)記錄快速計算出需要計算的結果,我們可以利用regexp+asc+evaluate函數(shù)快速提取數(shù)據(jù)計算,詳細請看下文介紹

網(wǎng)友求助SOS:如何將含雜亂內容的計算過程記錄,快速計算出結果?由于這位網(wǎng)友的要求比較特殊,我們簡化數(shù)據(jù)源,用案例進行講解。

如下圖所示:

A2單元格是計算過程的記錄:8.7(長)*3.6(寬)-6.1(長)*2(寬)+2,不僅含有原始的文本核心算式:8.7*3.6-6.1*2+2,并且在數(shù)字后面還標注了帶括號的長或寬的信息。并且括號格式還不一致,有些是中文全角的,有些是英文半角的,這些特殊處理細節(jié)都對B2單元格的計算結果增加了難度。

A2單元格的理論計算過程與結果是,我們想要得到的就是B2的結果:

=8.7*3.6-6.1*2+2

=21.12

下面拆解公式,分步驟講解作用原理。

第一步:統(tǒng)一括號格式

我們輸入公式:

=ASC(A2)

全角的1個左/右括號占2個字符的長度,半角的1個左/右括號占1個字符的長度,這個特點我們用肉眼可以觀察到。

ASC函數(shù)可以將全角字符轉換為半角字符。所以全角的左/右括號就轉換為了半角的左/右括號。

統(tǒng)一格式后的效果:

"8.7(長)*3.6(寬)-6.1(長)*2(寬)+2"

第二步:刪除括號及括號的內容

我們外面嵌套REGEXP正則表達式函數(shù):

=REGEXP(ASC(A2),"\(.*\)")

  • \:表示轉義符。
  • \(:將左括號轉換為真正的標點符號左括號
  • \):將右括號轉換為真正的標點符號右括號
  • .*:表示0個或多個連續(xù)的字符。
  • \(.*\):表示括號及括號里的任意內容。

理論上運用上述正則表達式,REGEXP函數(shù)用默認的“提取”模式,可以提取到A2單元格中所有的括號及括號里的任意內容。

但是卻出現(xiàn)了下面錯誤的結果:

(長)*3.6(寬)-6.1(長)*2(寬)

原因REGEXP正則表達式函數(shù)默認的是“貪婪模式”,它會盡可能多的匹配內容,它會將:“8.7(長)*3.6(寬)-6.1(長)*2(寬)+2”原始數(shù)據(jù)中,第一個左括號與最后一個右括號中間的內容全部提取出來:“(長)*3.6(寬)-6.1(長)*2(寬)”

所以我們需要完善正則表達式:

=REGEXP(ASC(A2),"\(.*?\)")

在*后面加上一個?號,?是“貪婪模式”向“懶惰模式”轉換的開關,這樣轉換為懶惰模式后,它會盡可能少的匹配括號里面的內容,只會分別匹配單獨的每個括號及括號里面的內容。

最后提取結果以數(shù)組溢出的方式顯示在一行多個單元格中:

{"(長)","(寬)","(長)","(寬)"}

繼續(xù)完善正則公式:

=REGEXP(ASC(A2),"\(.*?\)",2,)

=REGEXP(ASC(A2),"\(.*?\)",2,"")

將第三參數(shù)由默認的省略或0修改為2,表示“替換”模式,第4參數(shù)表示替換為什么,我們跳過或設置為"",表示替換為空值。

即將查找出來的4組括號及括號里面的內容,替換為空,等價于刪除4組括號及括號里面的內容。

第三步:計算文本算式

最外面嵌套EVALUATE函數(shù):

=EVALUATE(REGEXP(ASC(A2),"\(.*?\)",2,))

EVALUATE函數(shù)是常用的宏表函數(shù)之一,用于對以文字表示的一個公式或表達式求值,并返回結果。

該函數(shù)不能在微軟Office Excel單元格中直接使用,需要使用自定義名稱的方法間接調用。

使用WPS表格的朋友可以不用定義名稱,直接在工作表中輸入公式即可。

推薦閱讀:二維轉一維表又一新思路! wps中3個tocol+2個if直接搞定

相關文章

最新評論

鞍山市| 潼关县| 沁水县| 合肥市| 丁青县| 高密市| 资兴市| 农安县| 延吉市| 赞皇县| 新津县| 汕头市| 娱乐| 广南县| 都江堰市| 区。| 且末县| 长乐市| 德令哈市| 秦皇岛市| 防城港市| 定襄县| 靖江市| 平顶山市| 赤壁市| 丘北县| 浪卡子县| 浑源县| 长宁区| 德州市| 伊春市| 襄汾县| 天全县| 马山县| 驻马店市| 老河口市| 高州市| 扎兰屯市| 锡林浩特市| 庆阳市| 新宁县|