Ограничить количество строк в Google Sheets - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть документ на листах Google, в который добавляются строки на лист.Это сильно замедляет мой документ из-за сценариев, которые я запускаю для документа.Мне нужно всего около 100 рядов, но он продолжает добавлять от нескольких сотен до тысячи плюс.Есть ли способ ограничить это жестким числом или установить скрипт для автоматического удаления любой строки после 100.

Это журнал заказов, который я веду.

Я рассмотрел использованиеscript to

getMaxRows() - getLastRow() + 25 //for future blank rows.

Однако я не смог заставить его работать должным образом.Мои скриптовые возможности ограничены.

Что-то сродни.

var Max = getMaxRows()
var Last = getLastRows()
start = 2;
end = Max-Last+25 

sheet.deleteRows(start, end);

1 Ответ

0 голосов
/ 14 февраля 2019

Проблема:

Вероятно, вы используете неправильно написанную функцию формулы автоматически повторяющегося массива, где конечный результат формулы превышает число ячеек на листе.Функция автоматически создаст пространство для результата, вставив строки.

Пример:

  • Простой пример само повторяющейся формулы массива приведен ниже.На новом листе «1000 строк». Если вы введете эту формулу, новые строки будут вставлены в общей сложности до 50 000 строк, но это зависит от используемого вами устройства / браузера.

A1:

=ARRAYFORMULA(ROW(A1:A1001))
  • Формула Объяснение:

    • ROW(A1:A1001) создает массив от 1 до 1001 и возвращает их на лист
    • Но на листе нет места
    • Требуется еще одна строка
    • В листах автоматически добавляется 1 строка после строки 1000
    • Но, если строка вставляется после A1000, ссылкаA1001 в строке (A1: A1001) автоматически становится A1002, потому что между A1: A1001 добавляется новая строка.
    • Теперь, формула говорит, =ARRAYFORMULA(ROW(A1:A1002)), то есть 1002 числа, поэтому нам все еще нужнодополнительный рядДобавляется новая строка, снова изменяется ссылка, снова требуется новая строка и так далее, пока не будет достигнут жесткий предел, например, 50 000, и ваша формула перестанет повторяться и станет ошибкой #REF.

Решение (я):

  • Создайте копию листа и удаляйте каждую формулу массива одну за другой, а затем удаляйте строки каждый раз, чтобы закрепить мошенническую формулу.

  • Обратите внимание на расширение формул массива, например те, которые используют SPLIT.

  • Используйте методы формул вменяемых массивов:

    • Избегать: IF(ROW(A1:A100)=1,"Header",...) Использовать: {"Header";...}
    • Избегать: открытые диапазоны;Используйте закрытые диапазоны, используя INDEX / COUNTA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...