-1

任何帮助,将不胜感激。我需要该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
4

1 回答 1

3

笔记:

  • 字符串“00:00”和时间0不一样。

  • 日期和时间是一个数字,其中 0 表示午夜,1 表示一天,0.5 表示 12 小时。

    零比较

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

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

如果您#N/A在单元格 K16 中有,则需要将上面的内容替换"NA"NA().

同样一旦完成,您可以使用countif如下。

Application.WorksheetFunction.CountIf(rng.value2 , "0")
于 2013-04-13T11:13:49.400 回答