excel要完成以上任务,有网友提供以下公式解法:
C列公式 | MAX(LEN(A2)-LEN(INT(A2))-1,) | ||
D列公式 | LEN(A2)-FIND(".",A2) | ||
E列公式 | IFERROR(LEN(A2)-FIND(".",A2),) | ||
F列公式 | LEN(MID(A2,FIND(".",A2)+1,999)) | ||
G列公式 | MAX(LEN(A2)-LEN(INT(A2))-1,) | ||
H列公式 | tt(A2) | ||
I列公式 | dd(A2) | ||
J列公式 | tt(A2) |
从表格第7行开始:D列和F列的公式,出现异常。
原因是无法处理整数,因为没有小数点。
第9行出现新问题,0.200000,这个数据如何处理小数点。
以上所有公式不能正常执行。使用VBA来完成任务:
Function tt(rng As Range)
s = Trim(rng.Text)
k = InStr(s, ".")
If k <= 0 Then
tt = 0
Else
tt = Len(s) - k
End If
End Function
重点是使用了instr函数来判断有无小数点。
如果没找到结果tt=0;如果找到tt = Len(s) - k
另外还有一种方案是通过split来切分。
Function dd(rng As Range)
s = Trim(rng.Text)
kk = Split(s, ".")
If UBound(kk) = 0 Then
dd = 0
Else
dd = Len(kk(1))
End If
End Function
以上两种vba方案都能正常处理上述所有问题。