В столбце A у меня есть даты и в столбце B у меня есть значения.Рассчитать среднее по дате
Как рассчитать среднее значение, чья дата имеет месяц = 4 и год = 2012?
В столбце A у меня есть даты и в столбце B у меня есть значения.Рассчитать среднее по дате
Как рассчитать среднее значение, чья дата имеет месяц = 4 и год = 2012?
Кажется, хорошо использовать для AVERAGEIFS ...
Есть много способов сделать это, но вот один из способов:
=SUMPRODUCT(B1:B4,--(MONTH(A1:A4)=4),--(YEAR(A1:A4)=2013))/SUMPRODUCT(--(MONTH(A1:A4)=4),--(YEAR(A1:A4)=2013))
Конечно, изменить число строк, чтобы соответствовать вашим данным в диапазоне
Да, это так ... Но почему "-"? И когда в этом году или месяце нет даты, я получаю деление на 0. Я пробовал несколько способов, и у меня всегда есть одна проблема или другая ... –
«-» - это двойной унарный оператор для преобразования логического True/False в 1/0. AVERAGEIFS избегает вопроса о делении на ноль. – pnuts
Хорошо, если предположить, что вы хотите следовать один метод , давайте использовать 2010 год в качестве базы года (не високосный год). Эта формула массива даст вам результат 19 ноября:
=AVERAGE(DATE(2010,MONTH(A1:A7),DAY(A1:A7)))
При вводе его в строке формул, которые необходимо выполнить вход с CTRL + SHIFT + ENTER (не только обычный ENTER), так что Excel окружает формула с круглыми скобками {}. Затем вам нужно отформатировать ячейку в качестве даты, например. дд ммм.
Если есть пустые ячейки в диапазоне, то приведенная выше формула даст неправильный результат, так что должна быть адаптирована следующим образом (усложнение):
=AVERAGE(IF(ISNUMBER(A1:A7),DATE(2010,MONTH(A1:A7),DAY(A1:A7))))
Это также формула массива.
Я использовал подход CTRL + SHIFT + ENTER, чтобы получить {} раньше. И это сработало. Как и в первом примере. Но зачем нужно использовать {}? Что он делает точно? –
Это называется МАССОВЫЕ ФОРМУЛЫ. Например: [http://www.cpearson.com/excel/ArrayFormulas.aspx] – Michael
Не означает ли это среднее значение дат - конечно, идея состоит в том, чтобы усреднять значения, если они попадают в конкретный месяц, например. '= AVERAGE (IF (MONTH (A1: A10) = 4, IF (YEAR (A1: A10) = 2012, B1: B10)))' –
Немного короче версия: = AVERAGEIFS (B: B, A: A, > 40999 ", A: A," <41030 ") (распространяется автоматически и не чувствителен к языку). – pnuts
Мне нужно чаще рассматривать региональные эффекты. +1 для решения региональных проблем. Обычно я этого не делаю. да, я думал о B: B и A: A, но тогда мне пришлось перенести мою среднюю сумму на столбец C: и * sheash *, что столбец c грубо. – xQbert
40999 может быть нечувствительным к региону, но он чувствителен к дате (т. Е. 40999 не совпадает с датой даты 1904 года) ..... он также не очень прозрачен. Я бы использовал недвусмысленную функцию DATE, такую как DATE (2012,4,1), или, возможно, лучше иметь 1-й месяц в ячейке, такой как D2, а затем использовать '= AVERAGEIFS (B: B, A: A,"> = "& D2, A : A, "<" & EOMONTH (D2,0) +1) ' –