Пользовательская средняя функция на сводной таблице в электронных таблицах Google - PullRequest
1 голос
/ 07 февраля 2012

У меня есть таблица, которую я начинаю использовать для анализа личных денег.Мой основной лист называется «транзакции» и имеет заголовки «Категория», «Описание», «Дата» и «Сумма» (в основном это контрольный регистр).Я создал сводный отчет на этом листе, который содержит сумму, минимум и максимум суммы по категории.Я хотел бы сделать пользовательскую среднюю функцию для этого сводного отчета, но не уверен, как это сделать.То, что я хотел бы видеть, - это среднее количество отрицательных транзакций между положительными.Мои положительные транзакции - это мои зарплаты, а отрицательные транзакции - любые расходы, которые я делаю.

Пример может помочь в том, что я пытаюсь сделать здесь ...

Скажем, для категории «Продукты питания».«У меня есть следующие транзакции (в этом порядке) ... -20 -25 -30 100 -30 -35 -40

Я бы хотел, чтобы мое среднее значение вычислялось следующим образом ... (((-20 + -25 + -30) / 3) + ((-30 + -35 + -40) / 3)) / 2

У кого-либо есть хоть малейшее представление о том, как я могу улучшить свой сводный отчет досделать это?

1 Ответ

3 голосов
/ 07 февраля 2012

Вы делаете это с чем-то вроде:

=ARRAYFORMULA(AVERAGE(IF(Sheet1!D2:D8<0,Sheet1!D2:D8, 0)))

где столбец D - это сумма вашего примера, а Sheet1 содержит "транзакции" вашего примера.

Если вы хотите заполнить ее для сводной таблицы (с категорией в качестве другого критерия), вы можете проверить ответ по адресу: https://stackoverflow.com/a/9165254/179529

=SUM(ARRAYFORMULA(((Transactions!$A2:$A)=$A2) * ((Transactions!$D2:$D)>0) * (Transactions!$D2:$D) )) 
/
SUM(ARRAYFORMULA(((Transactions!$A2:$A)=$A2) * ((Transactions!$D2:$D)>0) * (1) )) 

, где $A2 - это ячейка, в которой у вас есть имя категории в сводной таблице ($ позволит вам скопировать формулу в другие столбцы, для которых вы хотите использовать ее в месяц или другой второй критерий.

Если вы хотите суммировать элемент в столбце D, только если он больше 0, вам нужно иметь ((Transactions!$D2:$D)>0) в качестве второго аргумента и (Transactions!$D2:$D) в качестве третьего аргумента (в противном случае вы будете считать ячейки вместо SUM их ).

Поскольку AVERAGE также будет принимать пустые ячейки, я использовал вместо этого SUM / COUNT. Обратите внимание, что COUNT на самом деле SUM с 3-м аргументом, равным 1.

Также обратите внимание, что если вы хотите игнорировать строку заголовка, вам нужно определить столбцы с помощью Transactions!$D2:$D, чтобы начать со 2-й строки.

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