Вот скриншот, это только пример, так как я не могу опубликовать оригинал:

Вот скриншот, это только пример, так как я не могу опубликовать оригинал

Я сделал этот лист для перекрестной проверки присутствующего сотрудника с другим листом, на котором есть информация, планируется ли этот сотрудник работать в этот день или нет.

Функция, которую я использовал в столбцах D1, D2, D3, выглядит следующим образом, пример для D1:

=IF([@Date]=DATE(2016,7,1),VLOOKUP([@ID],(*array on another sheet*),3,false),"")  

Он проверяет, является ли дата 7/1/16, затем возвращает результат, если нет, то возвращает пустое значение, и эта функция копируется до нижней части таблицы (около 250000-й строки) в 30 столбцах (от D1 до D30/D31). Есть ли способ пропустить функцию, если логическое значение возвращает false, чтобы оно занимало меньше памяти и быстрее, так как в нем будет так много полей, в которых функция возвращает пустое значение?

1 ответ1

2

Нет, в Excel нет способа контролировать оценку формул, однако у вас есть несколько способов улучшить:

  • вам действительно нужна отдельная колонка на каждый день? Вместо жесткого кодирования даты в формуле (DATE (...)) вы можете обратиться к первому столбцу ([@date])
  • Вы можете отключить автоматический расчет и рассчитывать вручную только тогда, когда вам это нужно
  • сохраните ваш файл как двоичную книгу (.xlsb), он требует меньше места и имеет лучшую производительность (недостатком является совместимость).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .