Excel sumif для соответствия текущему часу

У меня есть таблица, в которой указаны часы в столбце B и ожидаемое количество циклов в столбце D. Мне нужно, чтобы он суммировал ожидаемые циклы для всего до текущего часа в ячейке D21. Я хоть убей не могу заставить его работать. код, который я пробовал, приведен ниже вместе с изображением таблицы, чтобы помочь понять, что я пытаюсь сделать.

=SUMIF(B8:B20,"<=HOUR(time())", D8:D20)

введите описание изображения здесь

поэтому, если сейчас 10:00, сумма в ячейке D21 должна быть 24. на изображении у меня только что было =sum(D8:D20)

Что я сделал не так в своей формуле, что она работает?


person Vbasic4now    schedule 02.08.2016    source источник
comment
Каков фактический формат столбца B? Это действительно дата / время, показывающее только время? В этом случае вы сравниваете значение времени / даты с целым числом (часы, извлеченные из time()), что кажется неправильным.   -  person lurker    schedule 02.08.2016
comment
@lurker это просто формат времени без даты   -  person Vbasic4now    schedule 02.08.2016
comment
Попробуйте: "<=TIME(HOUR(NOW()),0,0)"   -  person David Zemens    schedule 02.08.2016
comment
@DavidZemens, который возвращает нулевое значение, когда я добавляю это в свою формулу   -  person Vbasic4now    schedule 02.08.2016
comment
Хорошо, но вы все же сравниваете формат времени с числовым форматом, который, так сказать, сравнивает яблоки и апельсины.   -  person lurker    schedule 02.08.2016
comment
@lurker так разве это невозможно? без изменения формата столбца b   -  person Vbasic4now    schedule 02.08.2016
comment
Формула, которую показывает @DavidZemens, верна. Вы, должно быть, делаете что-то еще не так.   -  person lurker    schedule 02.08.2016
comment
@lurker no mine не совсем правильно, но это может быть: =SUMIF($B$8:$B$12,"<="&TIME(HOUR(NOW()),0,0),$D$8:$D$12)   -  person David Zemens    schedule 02.08.2016
comment
WTF это сработало idk что я делал не так   -  person Vbasic4now    schedule 02.08.2016
comment
Конкатенация амперсанда и формулы была важна :)   -  person David Zemens    schedule 02.08.2016


Ответы (2)


Извините, это, возможно, лучше всего сделать в качестве комментария, но у меня пока нет такой привилегии. Но чтобы получить текущий час (то есть в Excel 2013), вы пишете:

=SUMIF(B8:B20; "<="&HOUR(NOW());D8:D20) 
person Mats Lind    schedule 02.08.2016
comment
= СУММЕСЛИ (B8: B20; ‹= & ЧАС (СЕЙЧАС ()); D8: D20) - person Mats Lind; 02.08.2016
comment
@ Дэвид А ты пробовал? Кажется, работает с моими числовыми значениями времени / даты в Excel 2013? - person Mats Lind; 02.08.2016
comment
вы гарантируете, что столбец B содержит значения часов, а не целые значения времени? - person Mats Lind; 02.08.2016
comment
@MLind содержит все значение времени без даты - person Vbasic4now; 02.08.2016
comment
@ Vbasic4now: Вы проверили, что = Value (B9) дает 7.0? Это то, что «Час» (сейчас ()) даст в 7 утра. - person Mats Lind; 02.08.2016
comment
@MLind возвращает .3333333 - person Vbasic4now; 02.08.2016
comment
@DavidZemens Обратите внимание, что мы пытаемся сравнить целые числа, которые являются результатом = Hour (X), где X - значение даты / времени - person Mats Lind; 02.08.2016
comment
Я исправил ваш ответ, указав правильную формулу из вашего первого комментария. - person David Zemens; 02.08.2016
comment
@ Vbasic4now: Затем вы сравниваете значения даты в столбце B с целыми часами, возвращаемыми Hour (now ()). Попробуйте записать часы как обычные целые числа в столбец B! - person Mats Lind; 02.08.2016
comment
@MLind числа взяты из другой таблицы и должны быть в этом формате. как вы думаете, есть другой способ выполнить то, что я пытаюсь сделать? - person Vbasic4now; 02.08.2016
comment
Да, возьмите числа в столбце B не напрямую из другой таблицы, а как это = Час (соответствующая ячейка в другой таблице) - person Mats Lind; 02.08.2016
comment
@ Vbasic4now или оставьте col B как есть, но создайте новый (возможно, скрытый), который равен = Hour (B), и используйте его в sumif. - person Mats Lind; 02.08.2016

Скорее всего, ваше «1 час ночи» на самом деле составляет 0,0416666666666667, что соответствует 0 + 1/24 дня.

Вам необходимо разделить ваш час (сейчас ()) на 24, прежде чем сравнивать

person Squizer    schedule 02.08.2016
comment
Не забывайте также, что вы можете шаг за шагом оценить формулу (лента «Формулы»). Это поможет вам получить сравниваемые значения. - person Squizer; 02.08.2016
comment
он просто говорит мне, что в моей формуле есть ошибки, и я не буду ее запускать, это не значит, что он просто дает мне неправильные значения - person Vbasic4now; 02.08.2016
comment
как я могу включить это в свою формулу? - person Vbasic4now; 02.08.2016
comment
Это будет = СУММЕСЛИ (B8: B20; ‹= & ЧАС (СЕЙЧАС ()) / 24; D8: D20) - person Squizer; 02.08.2016