Stu*_*art 5 arrays average google-sheets
我需要在几天的过程中找到一天中的平均时间。
Column A
Row 1 - 07/13/14 02:45 PM
Row 2 - 07/12/14 10:45 PM
Row 3 - 07/12/14 04:07 PM
Row 4 - 07/11/14 12:30 AM
Row 5 - 07/11/14 06:15 PM
Row 6 - 07/10/14 05:30 PM
Row 7 - 07/10/14 01:00 AM
Row 8 - 07/10/14 04:00 AM
Run Code Online (Sandbox Code Playgroud)
=AVERAGE(A1:A8)返回7/11/14 2:51 PM。这些时间的平均值应该是晚上 8:51。AVERAGE 似乎将日期纳入平均值,而我不能这样做。
=AVERAGE(TIMEVALUE((A1:A8))返回#VALUE。
我可以得到 8:51 PM 的唯一方法是首先将 A 列中的每个单元格转换为 1/1/14 或 1/2/14,以便使用以下方法将日期保持在 24 小时范围内
=IF(AND(TIMEVALUE(A1) > TIMEVALUE("12:00 AM"), TIMEVALUE(A1) < TIMEVALUE("5:00 AM")),DATEVALUE("1/2/14") + TIMEVALUE(A1), DATEVALUE("1/1/14") + TIMEVALUE(A1))
然后取B列中转换后的单元格的平均值
Column B
Row 1 - 01/01/14 02:45 PM
Row 2 - 01/01/14 10:45 PM
Row 3 - 01/01/14 04:07 PM
Row 4 - 01/02/14 12:30 AM
Row 5 - 01/01/14 06:15 PM
Row 6 - 01/01/14 05:30 PM
Row 7 - 01/02/14 01:00 AM
Row 8 - 01/02/14 04:00 AM
Run Code Online (Sandbox Code Playgroud)
我尝试使用
=IF(AND(TIMEVALUE(A1:A8) > TIMEVALUE("12:00 AM"), TIMEVALUE(A1:A8) < TIMEVALUE("5:00 AM")),DATEVALUE("1/2/14")+DATEVALUE(A1:A8), datevalue("1/1/14")+TIMEVALUE(A1:A8))
但这也会返回#VALUE。
提前致谢。
据我所知,您提供的“正确平均值”实际上是错误的。你说
这些时间的平均值应为晚上 8:51。
虽然我发现现在是上午 11:51:30。
无论如何,当从日期中提取时间值时,这个公式应该可以解决问题:
=ARRAYFORMULA(AVERAGE(TIMEVALUE(A1:A8)))
Run Code Online (Sandbox Code Playgroud)
您可能想查看ARRAYFORMULAAPI,但这里有一个描述摘录:
[ARRAYFORMULA] 允许将从数组公式返回的值显示为多行和/或多列,以及对数组使用非数组函数。