有奖练习:提取字符串中的数字并求和
本帖最后由 兰色幻想 于 2011-5-12 05:44 编辑这是一个老题,难度不算太高,但在字符串处理中算是较高难度的了。也是考察你耐心的一个题目。大家都做一下吧。提供正确答案奖励15-30经验值。
题目:
提取A列字符串的数字(可能含小数),然后进行求和。具体如下图所示:
本题设置仅作者可见,两天后公开。回贴不需要设置回贴可见。
本帖最后由 JLxiangwei 于 2011-5-10 11:09 编辑
回复 兰色幻想 的帖子
=SUM(TEXT(LEFT(TEXT(MID(A2&"A",ROW($1:$26),COLUMN(A:Z)),),COLUMN(A:Z)-1),"0.00;0;0;!0")*ISERR(-MID(A2,ROW($1:$26)-1,2))) Function Msum(str As String)
Dim matchs, match
With CreateObject("vbscript.regexp")
.Global = True
.Pattern = "\d+\.?\d*"
Set matchs = .Execute(str)
For Each match In matchs
Msum = Msum + Val(match)
Next
End With
End Function函数不会,让兰校长见笑了 =SUMPRODUCT(TEXT(LEFT(TEXT(MID(A2&"A",ROW($1:$99),COLUMN($A:$P)),),COLUMN($A:$P)-1),"0%;-0%;0;!0")*ISERR(-MID(A2,ROW($1:$99)-1,2))) =SUM(TEXT(MID(A2&"a",ROW($1:$25),COLUMN(B:Z)),"!0;;0;!1")*TEXT(MID(A2&"a",ROW($1:$25),COLUMN(A:Y)),"G/通用格式;;0;!0")*TEXT(0&MID("a"&A2,ROW($1:$25),1),"!0;;0;!1")) {:011:}{:011:} =SUM(MOD(LARGE(TEXT(MID(A2,IF((MID(A2&"a",ROW($1:$99),1)<="9")*(MID("a"&A2,ROW($1:$99),1)>"9"),ROW($1:$99),99),COLUMN(A:J)),"G/通用格式;0;0;\0")+ROW($1:$99)/1%%%,ROW($1:$99)*10-9),10^6)) 仅作者可见已解开 标记学习{:011:}
页:
[1]
2