#google-sheets #array-formulas #divide-by-zero
#google-таблицы #массив-формулы #деление на ноль
Вопрос:
Я ищу способ избежать #DIV / 0! ошибка в ArrayFormula. Первоначально формула ячейки была:
=arrayformula(F2:F3406/G2:G3406)
С тех пор я пытался:
=arrayformula(iferror(F2:F3406/G2:G3406,''))
=iferror(arrayformula(F2:F3406/G2:G3406),'')
Однако оба они выдают #ERROR! с комментарием «Ошибка синтаксического анализа формулы».
Как это должно быть сделано?
Ответ №1:
используйте:
=ARRAYFORMULA(IFERROR(1/(1/(F2:F3406/G2:G3406))))
или:
=ARRAYFORMULA(IFERROR(1/(1/(F2:F3406/G2:G3406)), 0))
Комментарии:
1. Спасибо, использовал первую формулу, которая работает. Но я не понимаю, как это работает… не могли бы вы объяснить, что это за логика, пожалуйста?
2. вы не можете делить на ноль, поэтому, если F / G равно 0, то 1/0 приведет к ошибке DIV, а затем IFERROR удалит эти ошибки. но если F / G не равно нулю, оно делится на небольшое число, но повторное деление на 1 вернет начальные значения
3. Умно! И теперь я вроде понимаю это. 🙂
Ответ №2:
Более простым решением было бы: =ARRAYFORMULA(СРЕДНЕЕ (IFERROR(Range1 / Range2)))
То есть в этом примере =ARRAYFORMULA(СРЕДНЕЕ ЗНАЧЕНИЕ(IFERROR(F2:F3406 /G2:G3406)))