2015-03-18 2 views
-2

Итак, у меня есть первая колонка с датами в разных временных марках. для второго столбца у меня есть данные. Пусть первый столбец равен A, второй столбец - B. Мне нужно получить сумму данных, которая является максимальной суммой в течение 30 минут в день.Получение максимальной суммы в 30 минут столбца B в день

Так, например, для приведенных ниже данных,

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 
+0

Пожалуйста, объясните подробно с образцом ввода и вывода –

+0

Непонятно, чего вы пытаетесь достичь. Пожалуйста, покажите пример ввода и желаемого вывода. Также покажите текущий вывод того, что вы пробовали до сих пор, и укажите, как текущий выход отличается от желаемого. Кроме того, вы даже не указали, что такое a4, a5, a6, .... –

+0

Я его отредактировал. благодаря! –

ответ

0

Вы можете сделать это, сохраняя отслеживать суммы в 30-минутный интервал в хелперов колонке, затем используя формулу массива для вычисления максимального значения в день.

Например, предположим, что ваши данные выше в столбцах A-C. (Но мы игнорируем данные в C и фокусируемся на столбце B, как вы это делали в своем примере.) В $D$1, давайте поместим желаемый интервал, 0:30. В столбце E мы будем отслеживать каждый раз в столбце A, что сумма rain_value за последние 30 минут. Чтобы вычислить это, вы можете вставить следующую формулу в E2 и скопируйте столбец (настройки, если вы хотите > вместо >=, например):

=SUMIFS(B:B,A:A,"<="&A2,A:A,">="&A2-$D$1) 
// assumes the time interval is in $D$1 

Теперь у вас есть столбец данных, который включает в себя окно над которые вы хотите взять максимум. Один из способов сделать это - использовать формулу MAX в виде формулы массива. Сначала создайте новый столбец F, который просто извлекает часть даты datetime в столбце A. Вы можете сделать это, просто положив =INT(A2) в ячейку F2 и, например, скопировав вниз.

Затем создайте столбец G только для ваших дат (1/2/2015 и 1/3/2015 в вашем примере). В колонке H, вычислить следующую формулу массива * в H2 и скопировать вниз, чтобы получить максимум из колонки E:

{=MAX(IF(F:F=G2,E:E))} 

Это позволит получить максимальную за день.

* Если вы не знаете, как выполнять формулы массива, просто введите формулу =MAX(IF(F:F=G2,E:E)) в H2, но вместо этого введите Enter, введите Ctrl-Shift-Enter в Windows (или Cmd-Enter на Mac) , Есть способы сделать эту последнюю часть без формулы массива тоже, с умным использованием SUMPRODUCT или INDEX.

Смежные вопросы