2016-12-19 4 views
0

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

enter image description here

Так конкретно, я хочу взять среднее значение F635 средних значений, соответствующих значениям Ряд 1. Для того, чтобы сделать шаг дальше, я хочу это продолжать Роу значение 2, строку значения 3 и т.д.

Я не знаком с тем, как запускать код в Excel, но попытался решить эту проблему с помощью следующих действий:

=IF($C = "1", AVERAGE($D:$D), "") 

который (к моему пониманию) можно интерпретировать d как «если значения (в любом месте) в столбце C равны 1, тогда возьмите среднее значение соответствующих значений в столбце D.»

Конечно, по мере того как я пытаюсь это, я получаю формулу ошибки из Excel.

Любое руководство будет невероятно оценено. Заранее спасибо.

ответ

0

Excel уже имеет встроенную функцию для такого использования; AVERAGEIF().

=AVERAGEIF(C:C,1,D:D) 
0

Для более сложных случаев я бы использовал формулу-матрицу. Это достаточно просто для формулы AVERAGEIF. Например, =AVERAGEIF(A1:A23;1;B1:B23)

Array-formula позволяет более тщательно продумывать ifs. Чтобы воспроизвести вышеизложенное, вы можете сделать =SUM(IF($A$1:$A$23=1;$B$1:$B$23;0))/COUNT(IF($A$1:$A$23=1;$B$1:$B$23;0)). Похоже на работу, но вы можете создавать чрезвычайно сложные if-утверждения. Вместо нажатия ENTER, введите CTRL-ENTER при вводе формулы. Используйте * между критериями для тиражирования AND или + для OR. Пример: SUM(IF(($A$1:$A$23="apple")*($B$1:$B$23="green");$C$1:$C$23;0)) значения для зеленых яблок в c1: c23.

Данные примера содержат три столбца с потенциалом ifs, поэтому я предполагаю, что вам понадобятся формулы массивов в какой-то момент.

+0

Для скорости и простоты использования всегда следует использовать Averageif/s или SUMIF/s вместо формул массива. Вы правы, что бывают случаи, когда они не будут работать, и нужна формула массива. Формулы массива используют множество вычислительных итераций, где нет стандартных формул. Именно поэтому нет никакого вреда для полных ссылок на столбцы в AVERAGEIF, но в формулах массива. Также вы можете просто обойти сумму/счетчик с помощью этой формулы массива: «AVERAGE (IF (A1: A23 = 1, B1: B23))' Каждый раз, когда делается другая ссылка, требуется больше вычислений и еще более замедляет формулу. –

+0

Также AVERAGEIFS() будет иметь дело с несколькими критериями «AVERAGEIFS (C: C, A: A,« apple », B: B,« green ») –

Смежные вопросы