用自定义函数吧
Function cal(rng As Range)
Dim reg As Object
Set reg = CreateObject("vbscript.regexp")
With reg
.Pattern = "[\((].+?[\))]"
.Global = True
cal = Application.Evaluate(reg.Replace(rng, ""))
End With
End Function
Alt+F11》弹出窗口中,选插入》模块》粘贴以上代码,关闭窗口,excel中输入公式=cal(C112)
包含文字的数字是无法直接参与计算的,需要先将数字部分提取出来在进行公式计算。根据数字所在单元格文本字符串位置的不同,可以使用MID函数或MIDB函数、RIGHT函数或RIGHTB函数、LEFT函数或LEFTB函数来进行提取。
MID 或MIDB 用途:MID 返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。MIDB返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。MIDB函数可以用于双字节字符。
语法:MID(text,start_num, num_chars)或MIDB(text, start_num,num_bytes)。
参数:Text 是包含要提取字符的文本串。Start_num 是文本中要提取的第一个字符的位置,文本中第一个字符的start_num 为1 ,以此类推;Num_chars指定希望MID 从文本中返回字符的个数;Num_bytes指定希望MIDB 从文本中按字节返回字符的个数。
实例:如果a1=电子计算机,则公式“=MID(A1,3,2)” 返回“计算”,=MIDB(A1,3,2)返回“子”。
RIGHT 或RIGHTB 用途:RIGHT 根据所指定的字符数返回文本串中最后一个或多个字符。RIGHTB根据所指定的字节数返回文本串中最后一个或多个字符。
语法:RIGHT(text,num_chars),RIGHTB(text,num_bytes) 。
参数:Text 是包含要提取字符的文本串;Num_chars 指定希望RIGHT 提取的字符数,它必须大于或等于0。如果num_chars 大于文本长度,则RIGHT 返回所有文本。如果忽略num_chars, 则假定其为1。Num_bytes 指定欲提取字符的字节数。
实例:如果A1=学习的革命,则公式“=RIGHT(A1,2)”返回“革命”,=RIGHTB(A1,2)返回“命”。
LEFT 或LEFTB用途:根据指定的字符数返回文本串中的第一个或前几个字符。此函数用于双字节字符。
语法:LEFT(text,num_chars)或LEFTB(text, num_bytes)。
参数:Text 是包含要提取字符的文本串;Num_chars指定函数要提取的字符数,它必须大于或等于0。Num_bytes按字节数指定由LEFTB 提取的字符数。
实例:如果A1=电脑爱好者,则LEFT(A1,2)返回“电脑”,LEFTB(A1,2)返回“电”。