Google Sheets: избегайте #DIV / 0! В ArrayFormula()

#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)))