So tun Sie dies genau, ohne Daten hinzufügen zu müssen:
Wie @ barry-houdini in einem Kommentar erwähnt hat, müssen Sie, um die "Schlafstunden" zum Laufen zu bringen, verwenden, MOD
da die Zeit um 12.00 Uhr / 24.00 Uhr "herumläuft ", was in der Tabellenkalkulationswelt 1 entspricht. Um das zu erreichen:
C3: =mod(B3-A3,1)
Sobald Sie die Dauern haben, ist der Durchschnitt einfach:
C2: =AVERAGE(C3:C7)
Für die Durchschnittswerte der tatsächlichen Zeiten müssen Sie verwenden, ARRAYFORMULA
wenn die Möglichkeit besteht, dass die Zeiten in einer Spalte um Mitternacht "umbrechen" müssen (dh, es gibt möglicherweise einige Werte auf der einen Seite und einige auf der anderen Seite). . Dafür haben wir:
A2: =ARRAYFORMULA(AVERAGE(if(A3:A7>0.5,A3:A7,A3:A7+1)))
Die obige Formel verwendet einfach jeden Wert im Bereich, prüft, ob er über 0,5 (Mittag) liegt, und addiert nicht 1, um ihn auf den nächsten Tag zu verschieben, und mittelt dann alle Werte. Die 0.5 geht davon aus, dass Sie nicht vor Mittag ins Bett gehen, aber wenn Sie einen ungewöhnlichen Zeitplan haben, können Sie diesen natürlich ändern.
Für den Durchschnitt der Weckzeiten ist das oben Genannte wahrscheinlich für die meisten Menschen nicht erforderlich, da Sie im Allgemeinen zwischen Mitternacht und Mitternacht am nächsten Tag aufwachen, sodass keiner Ihrer Werte "herumlaufen" muss. Das gesagt:
B2: =AVERAGE(B3:B7)
So tun Sie dies genau mit Datumsangaben:
Durch das Hinzufügen von Daten werden die Probleme bei der Berechnung von Durchschnittswerten nur maskiert, da sowohl das Datum als auch die Uhrzeit für den Durchschnitt verwendet werden. Es berechnet die Zeit an einem bestimmten Tag, die der Durchschnitt aller Datums- und Zeitwerte ist. Das führt zu zwei Problemen:
- Wenn Sie einen Datentag verpassen, wird Ihr Durchschnitt vollständig verworfen
- Wenn Sie eine gerade Anzahl von Tagen an Daten haben, erhalten Sie den entgegengesetzten AM / PM-Zeitwert
Was Sie wirklich zu TIMEVALUES
mitteln versuchen, ist das , also addieren wir das einfach zu jedem der Bereiche in den Formeln von oben:
A2: =ARRAYFORMULA(AVERAGE(if(TIMEVALUE(A3:A7)>0.5,TIMEVALUE(A3:A7),TIMEVALUE(A3:A7)+1)))
B2: =ARRAYFORMULA(AVERAGE(TIMEVALUE(B3:B7)))
C2 muss sich nicht ändern, da es sich immer noch nur um Dauern und nicht um Daten handelt.