作者:乔山办公网日期:
返回目录:excel表格制作
以冒号分列,用right函数取分列后左边一列最后一个字符,用left取右边一列第一个字符,搞定。
还以为很复杂要写vba用正则表达式呢,一看用不着。
如果A2的内容是 油钱12元 ,那么公式=MIDB(A2,SEARCHB("?",A2),2*LEN(A2)-LENB(A2))可以得到12数字
SEARCHB("?",A2),它是找抄到第一个非中文字符的位置,在这里是5,油钱是中文字符,每个中文字符长度是2,因此第一个数字1,它的位置是5,即SEARCHB("?",A2)=5
2*LEN(A2)-LENB(A2),这个用于计算所包含的数字个数,对于Len函数知,一个数字和中文都是1,对于LenB函数,中文是2,数字是1
MIdB(A2,5,2)意思是第5和第6字符,即12
如果是道油钱my12元,结果是my12,而不是12
--------------
你的Excel中一个单元格中包含多个数字,我估计很难单纯用公式完成
而且4人饭钱12元,4人中的4不应该计算
ZFCQH = CLng(ZFCQH) + Mr
改为
ZFCQH = ZFCQH + Val(Mr)
试试呢
如果都是如图中数字是两位的,只要用mid()函数提取数字就可以了,copy如果位数不定就要加入一些判断或者用SUBSTITUTE()替换其中的非数zhidao字部分再提取。
公式大概如下:
店存
=SUM(LEFT($A$1:$C$12,FIND("店",$A$1:$C$12)-1)*1)
客存
=SUM(MID($A$1:$C$12,FIND("店",$A$1:$C$12)+3,FIND("客",$A$1:$C$12)-FIND("店",$A$1:$C$12)-3)*1)
A1:C12是假设的数据区域