У меня есть диапазон Excel 12x18, который рисует данные с листа 823x20 (Results!$A:$T
) в соответствии со страницей диапазона 12x18, заголовками строк и столбцов (критерий 1, критерий 2 и критерий 3 соответственно).
={INDEX(Results!$A:$T,
MATCH(1, (criterion1 = Results!$A:$A) * (criterion2 = Results!$B:$B), 0),
MATCH(criterion3, Results!$A$1:$T$1, 0))}
Как видите, данных не так много, но все же, когда я меняю заголовок страницы, моему компьютеру (2 ГГц Intel Xeon с 24 ГБ ОЗУ) требуется около минуты, чтобы обновить 216 (12x18) поисковых запросов по индексу, и я m не сделал и половины пути к созданию поисковых запросов.
Ранее в моем проекте у этих поисков был только один критерий, поэтому я использовал VLOOKUP()
, и результаты приходили очень быстро. Однако теперь мне нужно найти значения по трем критериям, и приведенная выше функция — лучший способ, с помощью которого мне удалось это сделать. Тем не менее, похоже, это ответственно за долгое время вычислений, которое я получаю. Итак, мой вопрос: как я могу оптимизировать VLOOKUP()
нескольких критериев? Должен ли я настроить INDEX(1, MATCH()*MATCH(), MATCH())
или есть более быстрый способ сделать это?
Вот пример поиска по индексу 12x18 (имя ветки — единственная переменная, которую конечный пользователь сможет изменить):
И на листе 823x20 он ищет (на самом деле столбец A не имеет слияний):
={INDEX(Results!$A:$T, MATCH(1, IF(criterion1 = Results!$A:$A,IF(criterion2 = Results!$B:$B,1, 0),0), MATCH(criterion3, Results!$A$1:$T$1, 0))}
- person JosieP   schedule 14.08.2013