Подтвердить что ты не робот

Формула Excel для даты SUMIF относится к определенному месяцу

У меня есть данные excel в следующем формате.

Date        Amount

03-Jan-13   430.00 
25-Jan-13   96.00 
10-Jan-13   440.00 
28-Feb-13   72.10 
28-Feb-13   72.30

Мне нужно суммировать поле суммы, только если месяц находится в Ян Месяц.

Что я пробовал,

=SUMIF(A2:A6,"MONTH(A2:A6)=1",B2:B6)

Но он возвращает,

0

Что мне нужно,

Following values to be summed, 430.00 + 96.00 + 440.00 = 966.00
4b9b3361

Ответ 1

Попробуйте это вместо:

  =SUM(IF(MONTH($A$2:$A$6)=1,$B$2:$B$6,0))

Это формула массива, поэтому вам нужно ввести ее с помощью комбинации клавиш Control - Shift - Enter.

Вот как работает эта формула.

  • MONTH ($ A $2: $A $6) создает массив числовых значений месяца для дат в A2: A6, то есть, {1, 1, 1, 2, 2}.
  • Тогда сравнение {1, 1, 1, 2, 2}= 1 создает массив {TRUE, TRUE, TRUE, FALSE, FALSE}, который содержит условие для оператора IF.
  • Затем оператор IF возвращает массив значений с {430, 96, 400.. для значений диапазонов сумм, где значение месяца равно 1 и ..0,0}, где значение месяца не равно 1.
  • Затем массив {430, 96, 400, 0, 0} суммируется, чтобы получить ответ, который вы ищете.

Это по существу эквивалентно тому, что делают функции SUMIF и SUMIF. Однако ни одна из этих функций не поддерживает тип вычислений, который вы пытались включить в условный.

Также возможно полностью отказаться от ПЧ. Поскольку TRUE и FALSE также могут рассматриваться как 1 и 0, эта формула - =SUM((MONTH($A$2:$A$6)=1)*$B$2:$B$6) - также работает.

Заголовки: это не работает в таблицах Google

Ответ 2

=Sumifs(B:B,A:A,">=1/1/2013",A:A,"<=1/31/2013")

Красота этой формулы заключается в том, что вы можете добавить больше данных в столбцы A и B, и она просто пересчитает.

Ответ 3

=SUMPRODUCT( (MONTH($A$2:$A$6)=1) * ($B$2:$B$6) )

Пояснение:

  • (MONTH($A$2:$A$6)=1) создает массив из 1 и 0, он 1, когда месяц - январь, поэтому в вашем примере возвращаемый массив будет [1, 1, 1, 0, 0]

  • SUMPRODUCT сначала умножает каждое значение массива, созданного на предыдущем шаге, со значениями массива ($B$2:$B$6), затем оно суммирует их. Следовательно, в ваш пример это делает: (1 * 430) + (1 * 96) + (1 * 440) + (0 * 72.10) + (0 * 72.30)

Это также работает в OpenOffice и Google Spreadsheets