在工作中会遇到单元格内有数字和汉字,需要将各个单元格的数字进行相关运算,这时就需要提取单元格内的数值后进行运算。例如下表,需要计算一天的花费总额:

在这里需要用到MIDB,SEARCHB,LEN,LENB函数,公式如下:
=--MIDB(A2,SEARCHB("?",A2),LEN(A2)*2-LENB(A2))
其中:
LEN(A2):这个函数用于获取单元格A4中字符的数量,包括汉字、英文字母、数字等所有字符。此例子中结果为8(8个字符)
LENB(A2):这个函数用于获取单元格A4中每个字节的字符数。对于双字节字符集 (DBCS) 中,一个汉字占两个字节,而英文字母和数字只占一个字节。例子中结果为13(5*2+3)
LEN(A2)*2-LENB(A2):这个公式的含义是,首先通过LEN(A2)计算出A4单元格中所有字符的数量,然后乘以2(因为每个汉字在DBCS中占两个字节),最后减去LENB(A2)的结果(即A4单元格中每个字节的字符数),就可以得到A4单元格中数字的数量(含正负号及小数点)。
SEARCHB("?", A2): ("?")在单元格A2中查找单字节所在的位置,即第几位。例子的结果为9。
MIDB(A2, ..., ...): 从单元格A2中的文本字符串提取字符。第一个参数是要从中提取字符的字符串,第二个参数是起始位置,第三个参数是要提取的字符数量。
- 用来将提取出来的字符串转换为数值,此时结果为相反数,因此需要增加一个-,最后公式变成: =--MIDB(A2,SEARCHB("?",A2),LEN(A2)*2-LENB(A2))
最后得到如下结果:

注意:此方法不适用于含有字母及其他符号的单元格。