-1

どんな助けでも大歓迎です。CountIf00: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 は 1 日、0.5 は 12 時間を表します。

    ゼロ比較

あなたのコメントに基づいて、列 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")
于 2013-04-13T11:13:49.400 に答える