countif语句什么不算00:00

时间:2013-04-13 09:24:24

标签: excel excel-vba excel-formula excel-2010 vba

任何帮助将不胜感激。我需要CountIf语句来计算所有等于00:00的数据点。由于其他公式,该列的格式为24小时。 00:00是if语句的产物。我已经尝试了很多选项,但除非我将列重新格式化为通用,否则它不会计算,但这样做会影响我的时间形成,我需要24小时格式。感谢。

Sub Sample()
Dim result As Long, firstrow As Long, lastrow As Long
Dim ws As Worksheet
Dim rng As Range

'~~> Set this to the relevant worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")

With ws
    '~~> Find Lastrow in Col D
    lastrow = .Range("V" & .Rows.Count).End(xlUp).Row
    '~~> Set First row
    firstrow = 16

    '~~> Set your range
    Set rng = .Range("V" & firstrow & ":V" & lastrow)

    '~~> Put relevant values
    .Range("U" & lastrow + 3).Value = "No Slip Time"
    .Range("V" & lastrow + 3).Value = _
     Application.WorksheetFunction.CountIf(rng, "*00:00")
End With
End Sub

1 个答案:

答案 0 :(得分:3)

注意:

  • 字符串“00:00”和时间 0 不一样。
  • 日期和时间是一个数字,其中0表示午夜,1表示一天,0.5表示12小时。

    zero compare

根据您的评论,您在第v列=IF((K16="NA"),"00:00",IF(K16<>"na",K16))中使用了以下公式,请改用它。

=IF(Upper(K16)="NA",0,K16)

如果您在单元格K16中有#N/A,则需要将上述"NA"替换为NA()

一旦完成,您可以使用countif,如下所示。

Application.WorksheetFunction.CountIf(rng.value2 , "0")