2016-02-22 2 views
1

У меня есть формула, которая включает использование UDF, который рассчитал Национальное страхование (налог в Великобритании). Он сложный и используется много раз, поэтому он медленно вычисляется.Увеличена или уменьшена «Зависимость-цепочка» Excel?

Некоторые из клеток он получает зарплату от не используются, и поэтому имеют нули в

формула:.

=NI_Calc(D9,A1:A5,B1:B5,F1:F5) 

лучше:

=IF(D9=0,0,NI_Calc(D9,A1:A5,B1:B5,F1:F5)) 

т.е. делает Функция IF указывает Excel не вычислять UDF 'NI_Calc'? тем самым уменьшая нагрузку.

или Excel рассчитывает UDF в любом случае, и функция IF просто добавляет к своей нагрузке?

Благодаря

+2

Если Если не ложно, то NI_Calc не рассчитывается. Вы можете наблюдать это с помощью команды [Evaluate Formula] (https://goo.gl/Vl25be). В вложенных Ifs с несколькими условиями, в результате чего наиболее редкие результаты улучшают эффективность вычислений. – Jeeped

ответ

3

оператор IF первенствует не будет вычислять вторую часть заявления, если первая часть удовлетворяет условию. Из документов ...

«Когда Excel завершает оценку первого условия, результаты могут совпадать (в этом случае появляется результат одобрения), или они могут не совпадать. Если это не соответствует, родительская функция IF уже запущена через два из трех его аргументов. У вас все еще есть два возможных результата: вы заполняете свою формулу, вставляя свою вторую функцию IF в третий аргумент (value_if_false) родительского IF. Вложенный IF становится автономным третьим аргументом родительского IF Когда вложенный IF заканчивает оценку, он решает между двумя оставшимися возможными результатами, отображает результат, и функция заканчивается ».

https://support.office.com/en-us/article/IF-function-69aed7c9-4e8a-4755-a9bc-aa8bbff73be2

EDIT: На самом деле, это еще не очень массивно ясно ...

этот ответ Does Excel evaluate both result arguments supplied to the IF function? показывает, что лучше

Смежные вопросы