2016-07-05 5 views
0

現在、大量のデータを分析するマスタープロジェクトを実施中です。私は、睡眠時間と睡眠時間を比較することで、睡眠時間を計算しようとしています。現在、覚醒した時間と眠りに落ちた時間をとりました。 450人程度の参加者。私が問題を解決したのは、参加者が午前2時に眠りにつき、午前6時に目を覚ますと負の数になり、その参加者が30時間眠っているという余分な日として計算されます。あなたができる場合はVBAコーディングで負の数を特定し、式を実行します。

Sub AlterSleep() 
    Sleep=columms(13).Select 
    If Sleep < 0 Then 
     sleep 1440-sleep 
    End If 
End Sub 
+1

あなたもあなたの質問をフォーマットし、悪い質問のコピー/貼り付けに付属-3ダウン投票お気に入りを削除するには時間がかかることはありません場合は、人々はしたくないだろう助けます。 –

+0

謝罪これは私が今までこのようなものを使用したことは初めてですが、もともと私は間違ったフォーラムに入れました。 –

答えて

0

は、私は、xが列M

私の現在のコードのためのxの負その後、1440-値がこのされている場合、私は効果的に行うコードの一部を必要としてきました安全にあなたはこのようにそれを計算することができ、睡眠時間は常に24時間未満になることを想定しています。式は、それがcorrのだろう、それを必要とすることなく、24時間を追加した場合、ある
duration = ((awakening_time - sleeping_time) + 1440) modulus 1440

モジュラスを取ることによって作用する。
これは非常に簡単な式なので、VBAを使用して数式としてワークシートに実装することができます。

0

DateDiff("n")を使用して2回の間の分を計算し、ABS()は常に正の数を返します。

TimeAsleep(#6:00:00 AM位、#02:00:00 AM位)= 240

TimeAsleep(#6:00:00 AM#、#02:00:00 AM #)= 240

Function TimeAsleep(TimeWokeUp As Date, TimeFallenToAsleep As Date) As Integer 
    Dim result As Integer 
    TimeWokeUp = TimeValue(TimeWokeUp) 
    TimeFallenToAsleep = TimeValue(TimeFallenToAsleep) 
    result = DateDiff("n", TimeWokeUp, TimeFallenToAsleep) 
    TimeAsleep = Abs(result) 
End Function 
関連する問題