Меню

При выполнении функции averageif произошла ошибка деление на ноль невозможно

  • Remove From My Forums
  • Question

  • The following function works as it is below…

    =AVERAGEIF(D28:D32,»>20″)

    If I try to reference a cell instead of having a hard coded value of 20.  The following function returns the divide by zero error.  If I remove the double quotes from the criteria it will not even be accepted.

    =AVERAGEIF(D28:D32,»>B33″)

    How can I reference a cell in the criteria using the AVERAGEIF function in Excel?

    Thanks…

Answers

  • Try

    =AVERAGEIF(D28:D32, «>»&B33)


    Regards, Hans Vogelaar

    • Proposed as answer by

      Saturday, September 24, 2011 5:27 PM

    • Marked as answer by
      Calvin_Gao
      Sunday, October 9, 2011 1:12 PM

  • Remove From My Forums
  • Question

  • The following function works as it is below…

    =AVERAGEIF(D28:D32,»>20″)

    If I try to reference a cell instead of having a hard coded value of 20.  The following function returns the divide by zero error.  If I remove the double quotes from the criteria it will not even be accepted.

    =AVERAGEIF(D28:D32,»>B33″)

    How can I reference a cell in the criteria using the AVERAGEIF function in Excel?

    Thanks…

Answers

  • Try

    =AVERAGEIF(D28:D32, «>»&B33)


    Regards, Hans Vogelaar

    • Proposed as answer by

      Saturday, September 24, 2011 5:27 PM

    • Marked as answer by
      Calvin_Gao
      Sunday, October 9, 2011 1:12 PM

I have looked around for the answer and can’t find it (even though lots of people are having problems with this) — if someone’s seen the answer somewhere, please let me know.

I’m doing a very very basic travel expenses sheet

Month by month, I need to go through a column and find a type of expense occurred that month — and then tally it up with all the expenses of the same type. For a monthly total.

Then i’ve got a column that needs to find out what was the average spend for that type of expense that month. So i can track month-on-month improvement

example — http://f.cl.ly/items/1i3Z0Q0m1V2F2h2B3c2b/Screen%20Shot%202014-12-09%20at%2018.28.47.png

The SUM bit is easy

SUMIF(D2:D300, 'Food', A2:A300)

so, go through ‘D‘ column, find ‘Food‘, and if you find it: give me the value for the same row on ‘A‘ Column, and add them all together..

The Averaging is a bit tricky

i tried

(H4*12)/365

Which basically multiplies the monthly value by 12 and divides it to find out the daily average for the year (or the yearly average?).

But that averages a single input from one month over a year (taking into account months in the future which are zero) therefore it brings the average off 🙁

What i want to find out is

‘What was the daily average ammount I spent getting Food, in January?’

the tricky bit, obviously, is because in the Expense type column there are values i have to discard, so i don’t average the food with the accomodation

so i tried

AVERAGEIF(D2:D19, 'Food', A2:A19)

which basically says go through ‘D‘ column, find ‘Food‘, and if you find it: give me the value for the same row on ‘A‘ Column, and average all those values..

which works great for the items i’ve spent money on, but — if i havent spent anything that month (let’s say on Tips) it gives me back an error rather than just ‘0

 

Kanoist

Пользователь

Сообщений: 170
Регистрация: 23.10.2016

#1

06.10.2019 10:54:35

Добрый день.

Хочу исключить «0» при обработке данных формулой AVERAGEIFS. Сделал разными вариантами и выдает ошибку.

Код
=AVERAGEIFS('Битрикс'!W:W,">0",'Битрикс'!A:A,A2,'Битрикс'!B:B,B2)
=AVERAGEIFS('Битрикс'!W:W,'Битрикс'!A:A,A2,'Битрикс'!B:B,B2,">0”)

Как решить проблему?
Спасибо

 

Все_просто

Пользователь

Сообщений: 1042
Регистрация: 10.06.2013

#2

06.10.2019 13:15:38

Попробуйте так

Код
=AVERAGEIFS(A1:A5,A1:A5,"<>0")

С уважением,
Федор/Все_просто

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Примеры нужно показывать в Excel! Здесь не форум по Google-таблицам
По ошибке — лень почитать справку по функции? Ну, неправильно же записали…

 

Kanoist

Пользователь

Сообщений: 170
Регистрация: 23.10.2016

#5

06.10.2019 15:18:40

Код
AVERAGEIFS(A1:A10, B1:B10, ">20")
AVERAGEIFS(A1:A10, B1:B10, ">20", C1:C10, "<30")

вот примеры из справки — они не решают проблему(
Пример в ексель добавил.

Прикрепленные файлы

  • Пример.xlsx (205.91 КБ)

 

БМВ

Модератор

Сообщений: 20899
Регистрация: 28.12.2016

Excel 2013, 2016

А
=AVERAGEIFS(Битрикс!C1:C17888;Битрикс!C1:C17888;»>0″ ….. попробовать . #2 об этом

По вопросам из тем форума, личку не читаю.

 

Kanoist

Пользователь

Сообщений: 170
Регистрация: 23.10.2016

В таком варианте оно не считает данные отдельно по каждому критерию (Месяц+год)

Или эта формула вообще не решает мою задачу?

 

БМВ

Модератор

Сообщений: 20899
Регистрация: 28.12.2016

Excel 2013, 2016

#8

06.10.2019 15:59:01

Цитата
Kanoist написал:
не считает данные отдельно по каждому критерию (Месяц+год)

а если хорошо подумать?
=AVERAGEIFS(Битрикс!C1:C17888;Битрикс!C1:C17888;»>0″;Битрикс!A1:A17888;A2;Битрикс!B1:B17888;B2)

Изменено: БМВ06.10.2019 16:35:44

По вопросам из тем форума, личку не читаю.

 

Kanoist

Пользователь

Сообщений: 170
Регистрация: 23.10.2016

Спасибо большое.
Я все равно не могу понять, почему этот кусов в форме ссылки на лист (‘Сквозная аналитика по РК’!B2)), если он в том же листе.
Буду изучать.

 

БМВ

Модератор

Сообщений: 20899
Регистрация: 28.12.2016

Excel 2013, 2016

#10

06.10.2019 16:38:14

Цитата
Kanoist написал:
‘Сквозная аналитика по РК’!

Kanoist, Это ненужный придаток, не влияющий на результат.

По вопросам из тем форума, личку не читаю.

Я получаю сообщение об ошибке при использовании функции AverageIFS, ошибка заключается в том, что оценка функции AVERAGEIFS вызвала ошибку деления на ноль.

Я сопоставляю 4 столбца, в которых возникает ошибка, но при использовании для трех он работает нормально.

=AVERAGEIFS(Sheet1!$C:$C,Sheet1!$A:$A,D3,Sheet1!$B:$B,$A$2,Sheet1!$D:$D,$B$2,Sheet1!$D:$D,$B$3)

Ссылка на лист:

1 ответ

Лучший ответ

В ячейке G2 Листа 2 я ввел

=query(Sheet1!A:D, "Select A, avg(C) where B ='"&A2&"' and D matches '"&textjoin("|", true, B2:B3)&"' group by A label avg(C) 'Average'", 1)

В качестве альтернативы вашему текущему решению вы можете попробовать

=AVERAGE(FILTER(Sheet1!$C:$C,Sheet1!$A:$A=D3,Sheet1!$B:$B=$A$2,( (Sheet1!$D:$D=$B$2) + (Sheet1!$D:$D=$B$3))))

И перетащите вниз.

Текущее решение не работает, потому что нет строк, в которых выполняются все условия. Например: столбец D не может содержать «PAF» и «PAN».

Посмотрите, работает ли это для вас?


1

JPV
11 Авг 2021 в 13:16

Функция СРЗНАЧЕСЛИ (AVERAGEIF) в Excel используется для вычисления среднего арифметического по заданном диапазону данных и критерию.

Содержание

  1. Что возвращает функция
  2. Синтаксис
  3. Аргументы функции
  4. Дополнительная информация
  5. Примеры использования функции СРЗНАЧЕСЛИ в Excel
  6. Пример 1. Вычисляем среднее арифметическое по критерию
  7. Пример 2. Используем подстановочные знаки в функции СРЗНАЧЕСЛИ
  8. Пример 3. Используем операторы сравнения в функции СРЗНАЧЕСЛИ

Что возвращает функция

Возвращает число, обозначающее среднее арифметическое по заданному диапазону данных и критерию, указанному в качестве аргумента.

Синтаксис

=AVERAGEIF(range, criteria, [average_range]) — английская версия

=СРЗНАЧЕСЛИ(диапазон, условия, [диапазон_усреднения]) — русская версия

Аргументы функции

  • range (диапазон) — диапазон ячеек, по которому будет осуществлена проверка на соответствие заданному критерию;
  • criteria (условия) — критерий, по которому определяется какие значения из диапазона ячеек подходят для вычисления среднего арифметического;
  • [average_range] ([диапазон_усреднения]) (Опционально) — диапазон ячеек, по которым функция осуществит вычисление среднего арифметического, при соответствии заданному критерию. Если этот аргумент не указан в формуле, функция производит вычисления по аргументу range(диапазон).

Дополнительная информация

  • Пустые ячейки игнорируются при вычислении;
  • Если в качестве критерия указана пустая ячейка, то функция воспринимает ее значение как «0»;
  • Если ни одна ячейка из заданного диапазона не соответствует критерию, функция выдаст ошибку;
  • Если диапазон ячеек пуст или содержит данные в текстовом формате, формула выдаст ошибку;
  • Критерием может выступать число, выражение, ссылка на ячейку, текст или формула;
  • Критерий, указанный в формате текста или логического/математического символа (=,+,-,/,*) следует указывать в двойных кавычках;
  • Подстановочные знаки могут использоваться в качестве критерия.

Примеры использования функции СРЗНАЧЕСЛИ в Excel

Пример 1. Вычисляем среднее арифметическое по критерию

Функция AVERAGEIF (СРЗНАЧЕСЛИ) в Excel

На примере выше функция проверяет список значений в диапазоне «А2:А6» на соответствие критерию «Андрей» и вычисляет по соответствующим критерию ячейкам среднее арифметическое в диапазоне ячеек «В2:В6».

Так как в диапазоне «А2:А6» указаны данные для двух ячеек «Андрей» — «62» и «19», то функция вычисляет среднее арифметическое — «40.5».

Пример 2. Используем подстановочные знаки в функции СРЗНАЧЕСЛИ

Вы можете использовать подстановочные знаки в критерии функции.

В Excel существует три подстановочных знака — ?, *, ~.

  • знак «?» — сопоставляет любой одиночный символ;
  • знак «*» — сопоставляет любые дополнительные символы;
  • знак «~» — используется, если нужно найти сам вопросительный знак или звездочку.

Функция AVERAGEIF (СРЗНАЧЕСЛИ) в Excel

На примере выше, функция проверяет список данных в диапазоне «А2:А6» на соответствие критерию с подстановочными знаками «*а*», который подразумевает любые данные содержащие букву «а». Так как в диапазоне данных «А2:А6» этому критерию соответствуют все имена кроме «Олег» => среднее арифметическое будет вычислено по диапазону ячеек B2:B6 (исключая ячейку B5) = «29.5».

Пример 3. Используем операторы сравнения в функции СРЗНАЧЕСЛИ

Функция AVERAGEIF (СРЗНАЧ) в Excel

В случаях, когда вы не указываете аргумент average_range (диапазон_усреднения), она, автоматически, производит расчеты из заданного диапазона ячеек в аргументе range (диапазон).

На примере выше, функция определяет по заданному критерию «>19» какие ячейки из диапазона «B2:B6» больше числа «19» и вычисляет по ним среднее арифметическое. Важно, любые операторы следует указывать в двойных кавычках!

  • #2

Welcome to the board.

Can you post BOTH
Working Average Formula
NonWorking AverageIF Formula

  • #3

=average(e38,h38,k38,n38,r38,v38,z38,ad38,ah38,al38,ap38,at38,ax38,bb38,bf38,bj38,bn38,br38,bv38,bz38,cd38,ch38,cl38,ct38,cx38,db38,df38,dj38,dn38,dr38,dv38,dz38,ed38,eh38)

=averageif((e38,h38,k38,n38,r38,v38,z38,ad38,ah38,al38,ap38,at38,ax38,bb38,bf38,bj38,bn38,br38,bv38,bz38,cd38,ch38,cl38,ct38,cx38,db38,df38,dj38,dn38,dr38,dv38,dz38,ed38,eh38),»0″)

  • #4

That’s not how averageif works..Sorry.

It takes a (one) range of cells and evaluates each cell in that range for a criteria, then averages..
Example

=AVERAGEIF(E38:EH38,»<>0″)

That would average all the cells within E38:EH38 that are NOT equal to 0.

I know this is not right for your situation because you’re doing every 3rd cell..

What is in the between cells (F38 G38 I38 J38 etc..), are they numbers or text?
Because Average will IGNORE text values.
So your original formula could be just
=AVERAGE(E38:EH38)

Which version of XL are you using?

  • #5

The other columns are subsets of the data. Every third cell is a total of the two cells before it. Any idea how I can accomplish what I’m trying to do?

I’m using the most recent version. I don’t know exactly how to find the version, but I just got this computer and downloaded windows about a month ago.

  • #6

I thought we would be able to use this to our advantage.

Every third cell is a total of the two cells before it.

But after a closer look that doesn’t appear to be a true statement.
The cells in the formula are NOT in a consistent pattern of every 3rd cell.
It starts out that way until it gets to N38, then R38 is the 4th cell fron N38
Then it’s every 4th until it gets to CL38, then CT38 is the 8th cell from CL38

Without a consistent pattern, I don’t see a way to do it.

Are the cells in the average a formula?
If so, you can make that formula return «» instead of 0
Then the average will ignore the «» values.

Last edited: Jul 15, 2014

  • #7

It would be easier to make it consistent to every 4th cell. If that was the case how would I do it?

  • #8

What about the values between every 4th cell, are they still a subtotal of the 4th?
D1 is a sum of A1 B1 and C1
H1 is a sum of E1 F1 and G1
?

Since Average is SUM/COUNT
And every 4th is a sum of the previous 3, then to get the sum we can just sum the whole row and devide by 2.
Then the count is the count of values devided by 4
So given that simple example of A1 to H1
=SUM(A1:H1)/2 = SUM
=COLUMNS(A1:H1)/4 = COUNT

Average = (SUM(A1:H1)/2)/(COLUMNS(A1:H1)/4)

Now to ignore 0’s, we need to subtract the count of 0’s from the columns
Presumeably they would be in groups of 4 (The sum and the 3 previous)
So we can still devide the result of that by 4 to get the count
=(COLUMNS(A1:H1)-COUNTIF(A1:H1,0))/4

Then the average is
Average = (SUM(A1:H1)/2)/((COLUMNS(A1:H1)-COUNTIF(A1:H1,0))/4)

Hope that helps.

  • #9

Assuming numbers >= 0, try…

=SUM(E38,H38,K38,N38,R38,V38,Z38,AD38,AH38,AL38,AP38,AT38,AX38,
BB38,BF38,BJ38,BN38,BR38,BV38,BZ38,CD38,CH38,CL38,CT38,CX38,DB38,
DF38,DJ38,DN38,DR38,DV38,DZ38,ED38,EH38)/
INDEX(FREQUENCY((E38,H38,K38,N38,R38,V38,Z38,AD38,AH38,AL38,AP38,AT38,AX38,BB38,
BF38,BJ38,BN38,BR38,BV38,BZ38,CD38,CH38,CL38,CT38,CX38,DB38,DF38,DJ38,DN38,
DR38,DV38,DZ38,ED38,EH38),0),2)

Если вы работаете с формулами в Google Таблицах, вы знаете, что ошибки могут всплывать в любой момент. Хотя получение ошибок является частью работы с формулами в Google Таблицах, важно знать, как правильно обрабатывать эти ошибки. В этом руководстве я покажу вам, как обрабатывать ошибки в Google Таблицах с помощью функции IFERROR (ЕСЛИОШИБКА).

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

Вот различные ошибки, с которыми вы можете столкнуться при работе с Google Таблицами:

#DIV/0! Error

Вы, вероятно, увидите эту ошибку, когда число делится на 0. Это называется ошибкой деления. Если навести указатель мыши на ячейку с этой ошибкой, отобразится сообщение «Параметр 2 функции DIVIDE не может быть равен нулю».

#N/A Error

Это называется ошибкой «недоступно», и вы увидите это, когда используете формулу поиска, и она не может найти значение (следовательно, «Недоступно»).

Ниже приведен пример, в котором формула VLOOKUP используется, но возвращает ошибку, если не может найти значение подстановки в массиве таблицы.

#REF! Error

Это называется ошибкой ссылки, и вы увидите это, когда ссылка в формуле больше не действительна. Это может быть тот случай, когда формула ссылается на ссылку на ячейку, а эта ссылка на ячейку не существует (происходит, когда вы удаляете строку / столбец или рабочий лист, на которые ссылается формула).

#VALUE! Error

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

Например, в приведенном ниже примере, когда я пытаюсь добавить ячейки с 0 и символом A, это дает ошибку значения. Это происходит, поскольку вы можете добавлять только числовые значения, но вместо этого я попытался добавить число с текстовым символом.

 

#NAME? Error

Эта ошибка, вероятно, является результатом неправильного написания функции. Например, если вместо VLOOKUP вы по ошибке используете VLOKUP, это выдаст ошибку имени.

#NUM! Error

Ошибка Num может возникнуть, если вы попытаетесь вычислить очень большое значение в Google Таблицах. Например, = 145 ^ 754 вернет числовую ошибку.

Это также может произойти, если вы попытаетесь указать неверный номер. Например, в случае функции квадратного корня, если вы укажете отрицательное число в качестве аргумента, она вернет числовую ошибку.
Теперь я надеюсь, что вы лучше понимаете возможные ошибки в Google Таблицах и то, что может привести к таким ошибкам.

Теперь давайте разберемся, как использовать функцию ЕСЛИОШИБКА в Google Таблицах для обработки всех этих ошибок.

Синтаксис функции IFERROR

IFERROR(value, [value_if_error])

Входные аргументы

  • value — это аргумент, который проверяется на ошибку. это может быть ссылка на ячейку или формула.
  • value_if_error  — необязательный аргумент. Если аргумент значения является ошибкой, это значение, которое возвращается вместо ошибки. Оценивались следующие типы ошибок: # N / A, #REF !, # DIV / 0 !, #VALUE !, #NUM !, #NAME? И #ERROR !.

Дополнительные замечания:

  • Если вы опустите аргумент «value_if_error», в ячейке ничего не отображается в случае ошибки (т. е. Пустая ячейка).
  • Если аргумент значения является формулой массива, ЕСЛИОШИБКА вернет массив результатов для каждого элемента в диапазоне, указанном в значении.

Использование функции IFERROR в Google Таблицах — Примеры

Вот несколько примеров использования функции ЕСЛИОШИБКА в Google Таблицах.

Пример 1. Возврат пустого или значимого текста вместо ошибки

Вы можете легко создать условия, в которых вы указываете конкретное значение в случае, если формула возвращает ошибку (например, если ошибка, то пусто, а если ошибка, то 0).

Если у вас есть результаты формулы, которые приводят к ошибкам, вы можете использовать функцию IFERROR (ЕСЛИОШИБКА), чтобы обернуть формулу в нее, а в случае ошибки вернуть пустой или значимый текст.

В приведенном ниже наборе данных расчет в столбце C возвращает ошибку, если значение количества равно 0 или пусто.

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

=IFERROR(A2/B2,"")

В этом случае вы также можете использовать какой-нибудь значимый текст вместо возврата пустой ячейки.

Например, приведенная ниже формула вернет текст «Ошибка», если расчет дает значение ошибки.

=IFERROR(A2/B2,"Error")

Пример 2 — Возврат «Не найдено», когда функция VLOOKUP не может найти значение

С функцией VLOOKUP (ВПР) вы получите #N/A! error, когда функция не может найти искомое значение в массиве таблицы.

Вы можете использовать функцию ЕСЛИОШИБКА для возврата значимого текста, такого как «Не найдено» или «Недоступно», вместо ошибки.

Ниже приведен пример, в котором функция VLOOKUP возвращает #N/A! error.

Ниже приведена формула, которую можно использовать для возврата текста «Нет в списке» вместо сообщения об ошибке.

=IFERROR(VLOOKUP($D$2,$A$2:$B$5,2,0),"Not in List")

Обратите внимание, что вы также можете использовать функцию IFNA вместо функции IFERROR (ЕСЛИОШИБКА). Помните, что функция IFERROR удалит любой тип ошибки, тогда как IFNA обработает только ошибку #N/A! error.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • При выполнении метода cmssign произошла ошибка extra cryptoapi ошибка исполнения функции 1627
  • При выполнении транзакции произошла ошибка 1sjourn