EXCEL — столбец СУММЫ, если дата совпадает с СЕГОДНЯШНИМ ДНЕМ()

#excel #formula

#excel #формула

Вопрос:

Я пытался использовать SUMIF для получения моих результатов, но он не работает должным образом.

У меня есть строка дат (формат XX / XX / XXXX), и я хотел бы проверить эту строку на текущую дату.

Если строка содержит текущую дату, то я хотел бы суммировать общую сумму этого столбца и строки 5-20.

Например, сегодня 13.10.2016. Я хотел бы выполнить поиск TODAY() в определенной строке (например, строка 1), и если TODAY() найден, то суммируйте этот столбец от строки 1 до строки 3.

       --A--      --B--
   10/13/2016   10/14/16
1     50           10
2     10            4
3     5             6
 

Результат должен быть 65, только ЕСЛИ дата совпадает с СЕГОДНЯШНИМ ДНЕМ().

Я также проверил, чтобы указать букву столбца на основе даты, но безуспешно.

Любые советы принимаются! Спасибо.

Комментарии:

1. Во-первых, что это должно быть, если это не так? Решение Illpratll должно работать (хотя и не в соответствии с вашим первоначальным определением, а в приведенном примере, я по-прежнему воспринимаю его как ответ). TODAY() является динамическим, оно изменяется на сегодняшнюю дату.

Ответ №1:

Я думаю, вы можете добиться этого с помощью простого IF и SUM

т. е. в вашем примере выше, если вы хотите, чтобы результат отображался в нижней строке, вы можете просто использовать:

 =if(B2=today(), sum(B3:B5), "")
 

Это отобразит сумму в нижней части столбца для столбцов, где дата = сегодня, и пробел в других столбцах

скриншот

Комментарии:

1. это будет работать для абсолютного значения — мне нужно, чтобы оно было динамическим. Мне нужны значения для сегодняшней даты, поскольку сегодняшний день будет меняться ежедневно

2. Я не уверен, что вы здесь имеете в виду, как сказал AER, я использую today(), который является динамическим, на самом деле в каждом столбце в нижней строке есть результат, они просто «», когда дата <> до сегодняшнего дня. Если вы говорите, что хотите, чтобы сегодняшний результат отображался в одной ячейке, а не только в нижней части определенного столбца, вы можете суммировать всю эту строку в ячейку, поскольку в этой строке будет отображаться только сегодняшний результат

3. Эта формула определит, соответствует ли F2 = TODAY(), а затем суммирует F3: F5, это нормально, если F2 всегда сегодня, это сработает. Как насчет завтра, когда F3 теперь сегодня?? Эта формула больше не будет работать.

4. вы имеете в виду, что завтра, когда G2 будет сегодня, он все равно будет работать, как я уже сказал, формула в E6 такая же, как и в F6, ее просто не видно, предположительно, завтра, когда у вас появится новый столбец данных, вы можете расширить формулу в F6 на одну ячейку вправо, вы могли бы расширить ее сегодняесли вы хотите, все равно будет работать 😉

5. Это сработало бы, если исходный лист можно изменить, извините, что я этого не указал. Исходный лист должен оставаться таким, как есть.

Ответ №2:

Вам нужно использовать функцию СМЕЩЕНИЯ. Вы можете найти документацию здесь: https://support.office.com/en-us/article/OFFSET-function-C8DE19AE-DD79-4B9B-A14E-B4D906D11B66

В вашем конкретном примере будет работать следующая формула:

 =SUM(OFFSET(D2, 1, MATCH(B2, $D$2:$F$2, FALSE) - 1, 20))
 

Вы можете увидеть, как работает формула ниже. Предполагая, что вы знаете, что делает формула суммы, я объясню, что делает формула СМЕЩЕНИЯ:

  • Первый параметр: говорит, что начинается с ячейки D2
  • Второй параметр: это то, сколько строк вверх / вниз вы хотите сделать. В вашем случае вам нужно начинать со строки под датой, так что это ‘1’.
  • Третий параметр: это то, сколько столбцов справа вы хотите перейти. Ну, количество столбцов, которые вы хотите перейти, зависит от того, где находится ваша дата. Таким образом, используется формула соответствия, чтобы выяснить, как далеко вправо идти.
  • Четвертый параметр: это сколько строк вы хотите включить. Я просто выбрал 20, чтобы включить 20 строк под выбранной ячейкой.

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

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

Комментарии:

1. HLOOKUP сделал бы то же самое, нет?

2. HLOOKUP и VLOOKUP возвращают строку (насколько я знаю). @lllpratll должен вернуть диапазон, чтобы он мог суммировать весь диапазон.

3. Правильно, он возвращает диапазон, если вы определяете строки / столбцы как набор {1,2,3}, а затем используете его как формулу массива. Обратитесь к моему ответу.

4. @AER да, хороший момент. Любой из них будет работать. Я думаю, на данный момент это просто вопрос стиля.

Ответ №3:

Так что я попробую:

 {=SUM(HLOOKUP(TODAY(),Table_With_Dates_and_Three_Rows_Cell_Reference,{2,3,4}))}
 

ПРИМЕЧАНИЕ: не вводите {} , а помещайте в него формулу, а затем нажимайте Ctrl Shift Enter, чтобы создать то, что называется формулой массива (она выполняет вычисления массива по элементам, а затем отправляет значение агрегирующей функции — в данном случае это сумма).