每天获取 B 列的 30 分钟最大总和
Getting the 30 mins max sum of Column B per day
所以我在第一列中使用了不同时间戳的日期。对于第二列,我有数据。让第一列为 A,第二列为 B。我需要获取数据的总和,这是一天中 30 分钟内的最大总和。
例如,对于下面的数据,
dateTimeRead(YYYY-MM-DD HH-mm-ss) rain_value(mm) air_pressure(hPa)
1/2/2015 0:00 0 941.5675
1/2/2015 0:15 0 941.4625
1/2/2015 0:30 0 941.3
1/2/2015 0:45 0.1 941.2725
1/2/2015 1:00 0.2 941.12
1/2/2015 1:15 0.3 940.8625
1/2/2015 1:30 0.6 940.7575
1/2/2015 1:45 0.2 940.6075
1/2/2015 2:00 0 940.545
1/2/2015 2:15 0 940.27
1/2/2015 2:30 0 940.2125
1/2/2015 16:15 0 940.625
1/2/2015 16:30 0 940.69
1/2/2015 16:45 0 940.6175
1/2/2015 17:00 0 940.635
1/2/2015 19:00 0 941.9975
1/2/2015 20:45 0 942.7925
1/2/2015 21:00 0 942.745
1/2/2015 21:15 0 942.6325
1/2/2015 21:30 0 942.735
1/2/2015 21:45 0 942.765
1/2/2015 22:00 0 941.6
1/3/2015 2:15 0.1
1/3/2015 2:30 0.2 941.1275
1/3/2015 2:45 0.1 941.125
1/3/2015 3:00 0.1 940.955
1/3/2015 3:15 0 941.035
所需的输出将是
Date Max Sum
1/2/2015 1.1
1/3/2015 0.4
and so On
您可以通过在辅助列中跟踪 30 分钟间隔总和,然后使用数组公式计算每天的最大值来实现。
例如,假设您上面的数据在 A-C 列中。 (但我们忽略了 C 中的数据,并像您在示例中所做的那样关注 B 列。)在 $D
中,让我们输入您想要的间隔 0:30
。在 E 列中,我们将跟踪 A 列中的每次 rain_value
最后 30 分钟 window 的总和。要计算这个,您可以将以下公式粘贴到 E2 中并向下复制该列(例如,如果您想要 >
而不是 >=
,则进行调整):
=SUMIFS(B:B,A:A,"<="&A2,A:A,">="&A2-$D)
// assumes the time interval is in $D
现在您有一列数据,其中包含您要对其取最大值的 windows。一种方法是使用 MAX
公式作为数组公式。首先,创建一个新列 F,它只提取 A 列中日期时间的日期部分。例如,您只需将 =INT(A2)
放入单元格 F2 并向下复制即可。
然后,为您的日期创建一个 G 列(在您的示例中为 1/2/2015
和 1/3/2015
)。在H列中,计算H2中的以下数组公式*,向下复制得到E列的最大值:
{=MAX(IF(F:F=G2,E:E))}
这将获得每个日期的最大值。
*如果您不知道如何执行数组公式,基本上只需在 H2 中输入公式 =MAX(IF(F:F=G2,E:E))
,但不要输入 Enter,而是在 Windows 上输入 Ctrl-Shift-Enter (或在 Mac 上按 Cmd-Enter)。也有一些方法可以在没有数组公式的情况下完成这最后一部分,巧妙地使用 SUMPRODUCT
或 INDEX
.
所以我在第一列中使用了不同时间戳的日期。对于第二列,我有数据。让第一列为 A,第二列为 B。我需要获取数据的总和,这是一天中 30 分钟内的最大总和。
例如,对于下面的数据,
dateTimeRead(YYYY-MM-DD HH-mm-ss) rain_value(mm) air_pressure(hPa)
1/2/2015 0:00 0 941.5675
1/2/2015 0:15 0 941.4625
1/2/2015 0:30 0 941.3
1/2/2015 0:45 0.1 941.2725
1/2/2015 1:00 0.2 941.12
1/2/2015 1:15 0.3 940.8625
1/2/2015 1:30 0.6 940.7575
1/2/2015 1:45 0.2 940.6075
1/2/2015 2:00 0 940.545
1/2/2015 2:15 0 940.27
1/2/2015 2:30 0 940.2125
1/2/2015 16:15 0 940.625
1/2/2015 16:30 0 940.69
1/2/2015 16:45 0 940.6175
1/2/2015 17:00 0 940.635
1/2/2015 19:00 0 941.9975
1/2/2015 20:45 0 942.7925
1/2/2015 21:00 0 942.745
1/2/2015 21:15 0 942.6325
1/2/2015 21:30 0 942.735
1/2/2015 21:45 0 942.765
1/2/2015 22:00 0 941.6
1/3/2015 2:15 0.1
1/3/2015 2:30 0.2 941.1275
1/3/2015 2:45 0.1 941.125
1/3/2015 3:00 0.1 940.955
1/3/2015 3:15 0 941.035
所需的输出将是
Date Max Sum
1/2/2015 1.1
1/3/2015 0.4
and so On
您可以通过在辅助列中跟踪 30 分钟间隔总和,然后使用数组公式计算每天的最大值来实现。
例如,假设您上面的数据在 A-C 列中。 (但我们忽略了 C 中的数据,并像您在示例中所做的那样关注 B 列。)在 $D
中,让我们输入您想要的间隔 0:30
。在 E 列中,我们将跟踪 A 列中的每次 rain_value
最后 30 分钟 window 的总和。要计算这个,您可以将以下公式粘贴到 E2 中并向下复制该列(例如,如果您想要 >
而不是 >=
,则进行调整):
=SUMIFS(B:B,A:A,"<="&A2,A:A,">="&A2-$D)
// assumes the time interval is in $D
现在您有一列数据,其中包含您要对其取最大值的 windows。一种方法是使用 MAX
公式作为数组公式。首先,创建一个新列 F,它只提取 A 列中日期时间的日期部分。例如,您只需将 =INT(A2)
放入单元格 F2 并向下复制即可。
然后,为您的日期创建一个 G 列(在您的示例中为 1/2/2015
和 1/3/2015
)。在H列中,计算H2中的以下数组公式*,向下复制得到E列的最大值:
{=MAX(IF(F:F=G2,E:E))}
这将获得每个日期的最大值。
*如果您不知道如何执行数组公式,基本上只需在 H2 中输入公式 =MAX(IF(F:F=G2,E:E))
,但不要输入 Enter,而是在 Windows 上输入 Ctrl-Shift-Enter (或在 Mac 上按 Cmd-Enter)。也有一些方法可以在没有数组公式的情况下完成这最后一部分,巧妙地使用 SUMPRODUCT
或 INDEX
.