Делает ли оператор Excel IF расчетный лист быстрее, чем использование IFERROR?

Мой сценарий состоит в том, что у меня есть таблица стилей "Панель инструментов", которая ищет данные из большой таблицы на основе ячейки в столбце B, который всегда слева от нее. Ячейка в столбце B содержит INDEX, MATCH, IF, формулу массива для извлечения уникальных имен из таблицы, в которой выбрана "Группа". Этот список заполняется вниз и заполняется на основе раскрывающегося списка различных вариантов "Группа". Может возвращать до 20 имен, основанных на "Группе".

У меня есть 17 ячеек с формулами справа, которые все могут вернуть ошибку, если данных там нет. Так что я предшествовал им с IFERROR() заявление. Мой вопрос, если я предшествую им с IF() Оператор, который ускорит вычисления, потому что оператор IF будет читать, если True, тогда даст пустое значение, если false, тогда вычислит формулу.

Логично, что мне так кажется, но я хотел знать, чувствует ли кто-либо из вас то же самое. Благодарю. Возможно, это больше для мета-обсуждения.

ps Вот одна из 9 самых сложных формул, которые я использую.

=IFERROR((SUMIFS(INDIRECT("tblData["&N$7&" Top Box Num]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5))/(SUMIFS(INDIRECT("tblData["&N$7&" Den]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5)),"")

Является ли приведенная выше формула медленнее, чем приведенная ниже, когда она истинна?

=IF(OR($C$16=0,C16=""),"",(SUMIFS(INDIRECT("tblData["&N$7&" Top Box Num]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5))/(SUMIFS(INDIRECT("tblData["&N$7&" Den]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5)))

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

1 ответ

Решение

= ЕСЛИ делает "короткое замыкание", но для ускорения работы я бы предложил http://msdn.microsoft.com/en-us/library/office/aa730921%28v=office.12%29.aspx. Включает макрос для синхронизации. = НЕПРЯМОЙ, казалось бы, стоит внимания.

Другие вопросы по тегам