首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

Excel的countif函数不区分以零开头的数字,该如何处理

2013-01-25 
Excel的countif函数不区分以零开头的数字excel中需要做重复check,运用WorksheetFunction.CountIf不能很好

Excel的countif函数不区分以零开头的数字
excel中需要做重复check,运用WorksheetFunction.CountIf不能很好的返回结果
例:excel数据
    A
1  001
2  002
3  1

代码:
    If (WorksheetFunction.CountIf(Range("A1:A3"), "001") > 1) Then
        MsgBox ("NG")
    Else
        MsgBox ("OK")
    End If
想要的结果是"OK",但因为不区分"001"和"1"所以得到的结果是"NG"。

求各位大仙指点。。。
[解决办法]
既然现成的函数不会以你的逻辑来做,只有自己写函数了。

[解决办法]
Counif会先将文本型的数值转化为数字后再进行比较,这带来了两个风险:
1.文本型的数值和数字混用的时候,用Conutif来计算的话,它不会将两者进行区分,即0012和12它认为是一样的;
2.对于长度超过15位的文本型的数值,只要前15位是相同的,Countif就认为它们是相同的。原因还是因为它先将文本型的数值转化为数字后再进行比较,转化为数字后因为excel的精度为15位,超过的位数将视作为0,所以下面两个数字:1234567890123451和1234567890123452对excel来讲都是一样的。
解决的办法就是用Sumproduct。

热点排行