早教吧 育儿知识 作业答案 考试题库 百科 知识分享

含文字的单元格如何计算数字的和=SUMPRODUCT(--(0&MIDB(C4:C35,SEARCHB("?",C4:C35&0,1),2*LEN(C4:C35)-LENB(C4:C35))))可以对含文字的单元格的数字进行计算,无比感谢但是如果每个单元格内部止一个数字

题目详情
含文字的单元格如何计算数字的和=SUMPRODUCT(--(0&MIDB(C4:C35,SEARCHB("?",C4:C35&0,1),2*LEN(C4:C35)-LENB(C4:C35))))可以对含文字的单元格的数字进行计算,无比感谢 但是如果每个单元格内部止一个数字呢,如果将同一个单元格里的也相加得数呢?可以实现一个单元格内的所有数据筛选求和么?
▼优质解答
答案和解析
略说几个,以供参考。 方法一:=B2+SUBSTITUTE(C2,LEFT(C2,FIND("=",C2)),"")+D2(引用,以示尊重,特放第一) 方法二:=B2+RIGHT(C2,LEN(C2)-FIND("=",C2))+D2(可以不用那个很长的函数了) 方法三:=B2+MID(C2,FIND("=",C2)+1,10)+D2(又短了一点,节约是美德!只用两个函数,10表示取值的长度,多写点没事,加班费估计没人会达到10位数吧!也可以用LEN(C2)代替,要精确表示的话就用LEN(C2)-FIND("=",C2),是不是感觉跟上面方法二有点像了啊!) 方法四:公式里不便反向查找,但VBA里有,用InStrRev(C2, "=")就可以得到第一个“=”出现的位置,效果相当于LEN(C2)-FIND("=",C2),如果非要用1 to i的话有点麻烦了,但也不复杂,就是一个从右向左的取值比较的循环,直到取到“=”结束,就不用一步步说了吧,完整写一下: Sub jlgz() Dim T$, I%, J%, K% T = "C"&ROW() I = Len(T) For J = 1 To I If Right(T, 1) = "=" Then K = I - J + 1 Exit For Else T = Left(T, I- J) End If Next MsgBox K End Sub 方法五:上面都考虑反向或者是从后面某位截取,其实取第一位不也可以嘛!=B2+LEFT(C2,FIND("*",C2)-1)*250+D2,呵呵,其实并不是每件事都要逆向思考的! 方法六:其实EXCEL里有个分列法,分隔符号用“=”,左边的忽略,把值放在空列(比如F),可以隐藏,则E2=B2+D2+F2,看似很简单,可用的人很少!不过如果数据要更新的话,分列后的数据是不会自动更新的,要重新分列,其实分列的效果也可以写成公式的,可以用几个公式,也可以只并成一个,还可以用“*”和“=”同时分列,可以思考下! 方法七:可以将4*250=1000分成两列,中间的线为虚不打印,左边(C列)靠右对齐,右边(D列,原图中D、E各向后移一列)靠左对齐,要更美观可以再缩进一点,C列只填数字(4),D2="*250="&C2*250,F2=B2+C2*250+E2。当然,如果还是可以用隐藏列的,比如还是将4填在F2,那么C2=F2&"*250="&F2*250,E2=B2+F2*250+D2