4

以下のサンプルデータをご覧ください。

Time        Date                Result
00:21.6     10/1/2012 1:43      FALSE
01:47.7     10/1/2012 2:13      FALSE
00:56.7     10/1/2012 2:49      FALSE
00:54.9     10/1/2012 3:43  
00:11.8     10/1/2012 3:43  
02:10.9     10/1/2012 3:46      FALSE
01:05.4     10/1/2012 3:58      FALSE
00:55.8     10/1/2012 4:53  
04:41.8     10/1/2012 4:52  
00:26.3     10/1/2012 4:58  
00:04.2     10/1/2012 4:58  
00:15.3     10/1/2012 4:59  
00:06.4     10/1/2012 4:57  
00:10.7     10/1/2012 4:56  
00:04.4     10/1/2012 4:56  
00:04.2     10/1/2012 4:57  
00:29.2     10/1/2012 4:57  
00:34.5     10/1/2012 4:56  
01:22.4     10/1/2012 4:55  
00:08.1     10/1/2012 4:55      FALSE
03:20.9     10/1/2012 4:51      FALSE
00:56.3     10/1/2012 5:42      FALSE
02:23.1     10/1/2012 5:51      
01:20.6     10/1/2012 5:48  
00:09.8     10/1/2012 5:49      FALSE
01:40.0     10/1/2012 7:47      FALSE
01:13.4     10/1/2012 8:11      FALSE
00:41.6     10/1/2012 9:49      FALSE
01:08.1     10/1/2012 11:56     FALSE

特定の種類の計算を実行する必要があります。結果に空白のセルがない場合は、結果の横にある時間セルのデータが必要です。しかし、結果列に空白セルがある場合は、空白セルを含む行と、空白セルの隣に FALSE を含む最初のセルの合計時間を計算する必要があります。

以下の出力例を参照してください。

00:21.6     10/1/2012 1:43      FALSE       00:21.6
01:47.7     10/1/2012 2:13      FALSE       01:47.7
00:56.7     10/1/2012 2:49      FALSE       00:56.7
00:54.9     10/1/2012 3:43      
00:11.8     10/1/2012 3:43      
02:10.9     10/1/2012 3:46      FALSE       03:17.6(i.e., 00:54.9+00:11.8+02:10.9)
01:05.4     10/1/2012 3:58      FALSE       01:05.4
00:55.8     10/1/2012 4:53      
04:41.8     10/1/2012 4:52      
00:26.3     10/1/2012 4:58      
00:04.2     10/1/2012 4:58      
00:15.3     10/1/2012 4:59      
00:06.4     10/1/2012 4:57      
00:10.7     10/1/2012 4:56      
00:04.4     10/1/2012 4:56      
00:04.2     10/1/2012 4:57      
00:29.2     10/1/2012 4:57      
00:34.5     10/1/2012 4:56      
01:22.4     10/1/2012 4:55      
00:08.1     10/1/2012 4:55      FALSE       09:23.3(i.e., 00:55.8+04:41.8+00:26.3+00:04.2+00:15.3+00:06.4+00:10.7+00:04.4+00:04.2+00:29.2+00:34.5+01:22.4+00:08.1)
03:20.9     10/1/2012 4:51      FALSE       03:20.9
00:56.3     10/1/2012 5:42      FALSE       00:56.3
02:23.1     10/1/2012 5:51      
01:20.6     10/1/2012 5:48      
00:09.8     10/1/2012 5:49      FALSE       03:53.5(i.e., 02:23.1+01:20.6+00:09.8)
01:40.0     10/1/2012 7:47      FALSE       01:40.0
01:13.4     10/1/2012 8:11      FALSE       01:13.4
00:41.6     10/1/2012 9:49      FALSE       00:41.6
01:08.1     10/1/2012 11:56     FALSE       01:08.1

任意の数式またはビジュアル ベーシック エディターを使用して可能であれば、お知らせください。私は今これを手動でやっています。1日あたり約10000〜15000行を処理する必要があります。あなたが私を助けてくれれば、私は多くの時間を節約し、それを使って何か新しいことを学ぶことができます.

4

4 に答える 4

5

VBA を使用したい場合は、これを試すことができます。

Sub SmartRunningTotals()
    Dim rng As Range
    Dim cell As Range
    Dim lastRow As Long
    Dim totalTime As Double

    ' I'm assuming your time column is in column A
    lastRow = Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row

    Set rng = Range("A2:A" & lastRow)

    For Each cell In rng
        totalTime = totalTime + cell.Value
        If cell.Offset(, 2).Value <> "" Then
            cell.Offset(, 3).Value = totalTime
            ' reset total after we write it to column D
            totalTime = 0
        End If
    Next

End Sub
于 2012-10-26T01:52:17.303 に答える
2

2列でかなり簡単。累計を計算し、上のセルが空白でない場合はリセットします。

例えば

(時刻=H列、日付=I列、結果=J列)

Column N
    =IF(J1="",H2+N1,H2)
    =IF(J2="",H3+N2,H3)
    =IF(J3="",H4+N3,H4)
    =IF(J4="",H5+N4,H5)
    =IF(J5="",H6+N5,H6)

Column O

    =IF(J2="","",O2)
    =IF(J3="","",O3)
    =IF(J4="","",O4)
    =IF(J5="","",O5)
    =IF(J6="","",O6)

それらの数式を下にコピーします

于 2012-10-26T01:32:04.637 に答える
1

データが行 2 から始まり、ヘッダーが行 1 にあると仮定すると、D2 でこの式をコピーして使用できます

=IF(C2<>"",SUM(A$2:A2)-SUM(D$1:D1),"")

于 2012-10-26T13:21:35.023 に答える
0

既存の範囲がセル A1 で始まると仮定しています (つまり、セル A1 に単語"Time"が存在します)。また、列 C で考えられる 2 つの値は論理値FALSE(テキスト文字列"FALSE"ではない)、または空白 (1 つ以上のスペースの文字列ではない) であると想定しています。

セル D1 に数式を入力します。=IF(AND(C2=FALSE,C1=""),D1+1,1)

セル E1 に数式を入力します。=IF(C2="","",SUM(OFFSET(A2,-(D2-1),0,D2,1)))

セル E1 の表示形式を次のように設定します。"mm:ss.0"

D1 と E1 を範囲全体にコピーします。必要に応じて列 D を非表示にします。

于 2012-10-26T01:42:26.837 に答える