Рассчитать общее время значения, превышающего X - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть таблица, которая содержит даты, время и температуру.Я пытаюсь найти способ легко получить короткую версию таблицы, которая даст мне дату и общее время, если температура была выше 6,5 (например).

enter image description here

Любая помощь будет оценена, спасибо!

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Вы можете сделать это со смещенными массивами, чтобы найти время, когда температура в исходном массиве (G2: G14) <= 6,5, а температура в сдвинутом массиве (G3: G15)> 6,5, а затем вычесть еесо времени, когда температура в исходном массиве составляет> 6,5, а температура в смещенном массиве составляет <= 6,5. </p>

=INDEX(F2:F14,MATCH(1,(G2:G14>6.5)*(G3:G15<=6.5),0))-INDEX(F3:F15,MATCH(1,(G2:G14<=6.5)*(G3:G15>6.5),0))

Должен быть введен в виде формулы массива с использованием Ctrl Сдвиг Ввод

Версия без массива:

=INDEX(F2:F14,MATCH(1,INDEX((G2:G14>6.5)*(G3:G15<=6.5),0),0))-INDEX(F3:F15,MATCH(1,INDEX((G2:G14<=6.5)*(G3:G15>6.5),0),0))

Но @Dominique прав, если бы была только одна точка выше 6,5 градусов, вы могли быутверждают, что время, потраченное выше 6,5, а не равное нулю, составляло не менее 10 и, возможно, 20 минут, из-за 10-минутного интервала между точками времени и того факта, что температура, по-видимому, равномерно увеличивается, а затем уменьшается.

=INDEX(E3:E15,MATCH(1,(G2:G14<=6.5)*(G3:G15>6.5),0))

или

=INDEX(E3:E15,MATCH(1,INDEX((G2:G14<=6.5)*(G3:G15>6.5),0),0))

на дату.

enter image description here

0 голосов
/ 29 ноября 2018

Я понял это несколько правильно, но без общего времени, когда оно превысило температуру.

Я сделал вспомогательную ячейку в С1 (выше той температуры, которую вы хотите показать на столе), затем на А2 я положил

=IFERROR(INDEX(E$2:E12;SMALL(IF(G$2:G12>C$1;ROW(E$2:E12)-MIN(ROW(E$2:E12))+1);ROWS($A$2:A2)));"")

Вставьте в виде массива формулу CTRL + SHIFT + ENTER, затем вы можете перетащить ее вниз, насколько вам нужно. В столбце B (B2)

=IFERROR(INDEX(F$2:F12;SMALL(IF(G$2:G12>C$1;ROW(F$2:F12)-MIN(ROW(F$2:F12))+1);ROWS($B$2:B2)));"")

также вставить в массив CTRL +SHIFT + ENTER

должен выглядеть примерно так enter image description here

просто поиграть с нужным диапазоном

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...