谢谢你帮我解决了那道excel的函数题目,能不能帮我稍微解释一下?!谢谢

2024-12-16 18:38:46
推荐回答(2个)
回答1:

1、用MID分隔出来的数字是文本,所以需要将其转换为数值才能用SUM求和。转换的方法有多种,比如*1,/1,+0,--等等。其中的--是负负得正的意思。即加一个-即可转换为数值,但变成负数了,再加一个-使其变成正数。
2、用SUBSTITUTE将字符串中的/变成10个空格,然后用MID从中取出以1,11,21开始的,长度为10的字符串。所以1,11,21是每个串开始的位置,后面的10是长度。
3、为适应只有一个/和情况,公式可改为
=SUM(--("0"&TRIM(MID(SUBSTITUTE($A1,"/",REPT(" ",10)),{1,11,21},10))))
但如果有三个以上的/时,这个公式也不适用。可改为
=SUM(--("0"&TRIM(MID(SUBSTITUTE($A1,"/",REPT(" ",10)),{1,11,21,31,41},10))))
这个公式可适用四个以下的/,如果要通用(10个/以下的),则公式为
=SUM(--("0"&TRIM(MID(SUBSTITUTE($A1,"/",REPT(" ",10)),(ROW($1:$10)-1)*10+1,10))))
但这是数组公式了。

回答2:

呵呵,你的问题曾经也困扰我多时,大家一起学习
1.trim函数的结果(35)是文本,不能直接进行计算,加--等于负负得正,将文本变为数字35,还有用1*也可以达到目的

2.SUBSTITUTE(...)作用是用10个空格代替/ ,MID(X ,{1,11,21},10)作用是分别在字符串X的第1,11,21个字符开始截取10个字符,结果是字符数组。如35/13/25,结果如下数组(x表示空格)
35xxxxxxxx
xx13xxxxxx
xx25
trim()处理完就是35,13,25(字符)

3.如果是13/12,变成
=SUM(--TRIM(MID(SUBSTITUTE($A1,"/",REPT(" ",10)),{1,11},10)))
如果是13/12/13/12,就变成
=SUM(--TRIM(MID(SUBSTITUTE($A1,"/",REPT(" ",10)),{1,11,21,31},10)))
如果是35、13、25,将函数里面的/变成、