Выражения вида 0/0 в Excel 2010

maximovega

Какой самый простой способ можно использовать, чтобы Excel воспринимал выражения вида 0/0 равными нулю?
Есть формула вида =...+[expression1]+...+[expression2]-[expression3]/A+B*[expression4]*Coeff1/Coeff2+C*[expression5]*...., то есть посередине длинной формулы находится некоторое выражение Coeff1/Coeff2, которое иногда имеет вид 0/0. В таких ситуациях хочу не меняя всей формулы делать отношение нулевым. Оно зависит от строки и столбца, поэтому CTRL+F - и заменить всё на выражение с использованием IF не поможет. Протягивать формулы можно, но работы получается просто на несколько дней, слишком структура листов широка.
Как можно решить задачу с наименьшими потерями сил и времени?

lubanj

скрипты на вижуал бэйсике помогут навернео

danilov

if

hprt

вроде, IIF?

maximovega

Я же пишу, протягивать, вручную менять формулы чрезвычайно проблематично. Если ты знаешь, как это сделать попроще, подскажи, пожалуйста, подробнее? :)

artimon

Написать скрипт на VBA

maximovega

Как это сделать наиболее коротко, эффективно? (Если отношение 0/0 имеет вид J15/J20.)

danilov

IF(AND(J15 = 0;J20 = 0);0;J15/J20)

danilov

> Оно зависит от строки и столбца, поэтому CTRL+F - и заменить всё на выражение с использованием IF не поможет.
Не вижу связи

danilov

> Если ты знаешь, как это сделать попроще, подскажи, пожалуйста, подробнее?
Ну, ты тогда сформулируй поподробнее. Пока неясно, почему if не подходит

saveliev_a

IF(AND(J15 = 0;J20 = 0);0;J15/J20)
IF(J20=0;0;J15/J20)

Dasar

>Ну, ты тогда сформулируй поподробнее. Пока неясно, почему if не подходит
телепат моуд: потому что код уже написан и для того, чтобы везде заменить / на IF придется написать еще один скрипт, который будет парсить все формулы и заменять / на if

danilov

Достаточно подобрать регулярное выражение для замены, не?
А из написанного не очевидно, почему этого всё же недостаточно

Inflict84

на практике обычно можно заменить выражение Coeff1/Coeff2 на Coeff1/(Coeff2 + eps где eps заведомо значительно меньше по модулю, чем минимальное значение |Coeff2| (кроме нулевого). Какое именно взять eps — зависит от того, каков смысл Coeff2.

state7401281

на практике обычно можно заменить выражение Coeff1/Coeff2 на Coeff1/(Coeff2 + eps где eps заведомо значительно меньше по модулю, чем минимальное значение |Coeff2| (кроме нулевого). Какое именно взять eps — зависит от того, каков смысл Coeff2.
Оставить комментарий
Имя или ник:
Комментарий: