Оптимизация / ускорение расчета времени в Google Sheets - PullRequest
0 голосов
/ 11 октября 2019

Я задал несколько вопросов, связанных с этим моим личным проектом, уже на этой платформе, и это должно быть последним, так как я так близок к завершению. Ниже приведена ссылка на созданную мной примерную электронную таблицу, которая имитирует то, что делает мой настоящий проект, но содержит менее конфиденциальную информацию и также меньше по размеру.

Макетная таблица

Базовое краткое изложение таблицы:

  1. Извлекает данные из основного расписания, которое контролируется / редактируется другой стороной, в Основная таблица , вкладка.

  2. В столбцах, смежных с импортированными данными, формула массива расширяет главное расписание по классам в случае, если некоторые временные интервалы обозначают несколько комнат,Дополнительные формулы корректируют дату, время начала и время окончания, которые будут ограничены в течение 24-часового периода текущего дня. Время начала каждого урока также устанавливается на час раньше.

  3. На вкладке Расписание комнат на вкладке создается почасовой календарьна основе номера комнаты в первом столбце и соответствует только текущему дню.

Я тщательно протестировал электронную таблицу с несколькими сценариями и доволен тем, как все работает, кромеза время расчета. Я полагал, что две изменчивые функции, которые я использую, потребовали бы некоторого времени обработки сами по себе, и я, конечно, не ожидал, что это будет молниеносно, особенно без использования сценария, но проект, для которого я на самом деле реализую этот метод, намного большеи занимает очень много времени для обновления. Цель этой электронной таблицы - дать пользователям возможность найти открытую комнату и «зарезервировать» ее, установив флажок рядом с ней (которая, следовательно, будет окрашивать весь ряд в красный цвет), позволяя всем остальным знать, что она уже занята.

Я хотел бы знать, есть ли какой-либо способ оптимизировать / ускорить мою электронную таблицу или не обновлять ее каждый раз при нажатии на флажок и вместо этого обновлять ее «вручную», аналогично тому, что запрашивает OP здесь . Я не знаком с Apps Script и не очень разбираюсь в написании кода в целом, но я готов учиться - мне просто нужен толчок в правильном направлении, так как я захожу в эту слепую. Я знаю, что число формул во вкладке Расписание , вероятно, работает против меня, но я настолько близок к тому, что я хотел, чтобы был конечный продукт, поэтому любая помощь или понимание очень важныпризнателен!

Не стесняйтесь задавать любые вопросы, если я не объяснил это достаточно хорошо.

1 Ответ

1 голос
/ 12 октября 2019

, чтобы ускорить процесс, вам следует избегать использования одинаковых формул для каждой строки и использовать формулы массива. например:

=IF(AND(TEXT(K3,"m/d")<>$A$1,(M3-L3)<0),K3+1,K3+0)

=ARRAYFORMULA(IF(K3:K<>"", 
 IF((TEXT(K3:K, "m/d")<>$A$1)*((M3:M-L3:L)<0), K3:K+1, K3:K+0), ))

=IF(AND(TEXT(K3,"m/d")=$A$1,(M3-L3)<0),TIMEVALUE("11:59:59 PM"),M3+0)

=ARRAYFORMULA(IF(K3:K<>"", 
 IF((TEXT(K3,"m/d")=$A$1)*((M3-L3)<0), TIMEVALUE("11:59:59 PM"), M3:M+0), ))

0

...