Делает ли оператор 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. Включает макрос для синхронизации. = НЕПРЯМОЙ, казалось бы, стоит внимания.