Google sheets файл слишком большой
Когда я начал использовать Google Таблицы несколько лет назад, у меня не было возможности уменьшить (или увеличить) масштаб в Google Таблицах. Меня, как опытного пользователя Microsoft Excel, это до глубины души расстроило. В конце концов, насколько сложно создать простую функциональность для увеличения и уменьшения масштаба рабочего листа?
Ну, я не знаю, насколько это сложно (или нет), но хорошая новость заключается в том, что теперь вы можете увеличивать и уменьшать масштаб в Google Таблицах. Это не так просто и удобно, как в Excel, но можно.
В этом уроке я покажу вам несколько методов увеличения и уменьшения масштаба в Google Таблицах.
Ограничение Google Таблиц
Ниже приведены некоторые ограничения Google Таблиц:
GOOGLETRANSLATE и DETECTLANGUAGE: переводим текст в ячейках
В Google Таблицах есть занятная функция GOOGLETRANSLATE, позволяющая переводить текст прямо в ячейках:
Синтаксис функции следующий:
text – это текст, который нужно переводить. Можно взять текст в кавычки и записать прямо в формулу, но удобнее сослаться на ячейку, в которой текст записан.
[source_language] – язык, с которого мы переводим;
[target_language] – язык, на который мы переводим.
Второй и третий аргументы задаются двухзначным кодом: es, fr, en, ru. Их тоже можно указать в самой функции, но можно брать из ячейки, а язык исходного текста и вовсе можно автоматически определять.
А как быть, если мы хотим переводить на разные языки? И при этом не хотим каждый раз указывать язык исходника вручную?
Тут пригодится функция DETECTLANGUAGE. У нее единственный аргумент – текст, язык которого нужно определить:
Как и с любой другой функцией, прелесть здесь в автоматизации. Можно быстро поменять текст или язык; быстро перевести одну фразу на 10 языков и так далее. Конечно, мы понимаем, что это текст онлайн-переводчика – качество будет соответствующим.
Евгений Намоконов и Ренат Шагабутдинов, а еще мы ведем канал в телеграмме, где разбираем разные кейсы с Google Таблицами, если вам интересно — заглядывайте в гости, ссылку можно найти в моем профиле.
Без ограничения по строкам (но ограничение в 5 миллионов ячеек)
Раньше в Google Таблицах было ограничение в 40 000 строк, но когда я проверил это при написании этой статьи, я увидел, что он был удален.
Вы можете видеть на изображении ниже, у меня уже есть 200001 строка, и я все еще могу добавить больше строк.
Но если я добавлю строки, превышающие ограничение в 5 миллионов ячеек, Google Таблицы не позволят мне добавить строки.
Импорт форматирования из исходной таблицы
Как мы уже заметили, IMPORTRANGE загружает только данные, но не форматирование исходной таблицы. Как с этим быть? Заранее «подготовить почву», скопировав форматирование из исходного листа. Для этого зайдите на исходный лист и скопируйте его в вашу книгу:
После нажатия кнопки Копировать в… выберите книгу, в которую будете импортировать данные. Обычно нужная таблица есть на вкладке Недавние (если вы действительно недавно работали с ней).
После копирования листа выделите все данные (нажав на левый верхний угол):
И нажмите Delete. Все данные исчезнут, а форматирование останется. Теперь можно ввести функцию IMPORTRANGE и получить полное соответствие исходного листа — как в части данных, так и в части формата:
IMPORTRANGE как аргумент другой функции
IMPORTRANGE может быть аргументом другой функции, если диапазон, который вы импортируете, подходит на эту роль.
Рассмотрим простой пример — среднее значение по продажам из диапазона, находящегося в другом документе.
Это исходный документ. Пусть данные будут добавляться и нам нужно среднее по продажам 2016 (то есть от ячейки D2 и до упора вниз).
Сначала импортируем этот диапазон:
Получаем результат, который будет обновляться при добавлении новых строк в исходном файле в столбце D.
Удалить неиспользуемые ячейки
Если вы переместили много данных в свою электронную таблицу, у вас, вероятно, накопилось много пустых ячеек.
Хотя эти ячейки не добавляют никакой информации для человека, просматривающего лист, они занимают место в памяти программы.
Очистить ячейки можно разными способами, но один из самых простых и быстрых:
- Выделите все неиспользуемые столбцы (или строки) на краю листа
- Открытие контекстного меню
- Выбор «Удалить столбцы» (желтая стрелка)
В следующем примере демонстрируется выбор столбцов CZ и выбор опции «удалить» из контекстного меню.
Этот метод также может удалять строки.
Google Таблицы поддерживают пять миллионов ячеек на книгу, 18 278 столбцов на лист и 50 тысяч символов на ячейку. Однако проблемы с производительностью всплывают задолго до достижения этих возможностей.
Удалить ненужные строки / столбцы
То, что в ячейке содержится информация, не означает, что ячейка полезна. На медленном листе может быть больше данных, чем вам нужно, особенно если вы скопировали его с другого листа. Вы можете ускорить медленный лист, удалив ненужные строки и столбцы.
Однако вы всегда должны сохранять копию оригинала перед удалением ненужного содержимого.
Например, если вы пытаетесь построить гистограмму в Google Таблицах, показывающую, сколько раз люди отправляли уникальные адреса электронной почты в форму, вам нужны только адреса электронной почты. Любая другая информация только замедлит работу Таблиц.
В нашем примере формы вопроса предположим, что мы получили тысячи электронных писем от клиентов и хотим узнать, сколько клиентов задавали нам вопросы несколько раз. Однако Google Таблицы продолжают давать сбой, когда мы пытаемся построить гистограмму.
Лист также содержит информацию об имени, номере телефона и запросе, которые не имеют отношения к нашему вопросу. Таким образом, мы можем ускорить работу с Таблицами, удалив все ненужные данные.
В следующем примере я выбрал столбцы для «Имя», «Номер телефона» и «Запрос» (желтые стрелки). Затем я открыл контекстное меню и выбрал «Очистить столбцы» (красная стрелка). Это уберет с листа ненужную информацию.
IMPORTRANGE
Для переноса данных из одного файла в другой в Google Таблицах используется функция IMPORTRANGE.
В каких случаях она может пригодиться?
- Вам нужны актуальные данные из файла ваших коллег.
- Вы хотите обрабатывать данные из файла, к которому у вас есть доступ «Только для просмотра».
- Вы хотите собрать в одном месте таблицы из нескольких документов, чтобы обрабатывать или просматривать их.
Синтаксис формулы следующий:
spreadsheet_key (ключ) — последовательность символов атрибута «key=» (ключа) в ссылке на таблицу (после «spreadsheets/…/»).
Пример формулы с ключом:
В вашем файле будет отображаться диапазон A1:CM500 с Листа1 из файла, который находится по соответствующей ссылке.
Если в исходном файле может меняться количество столбцов или строк, вводите во втором аргументе функции открытый диапазон (см. также подраздел «Диапазоны вида A2:A»), например:
! Имейте в виду, что если вы загружаете открытый диапазон (например, A1:D), то вы не сможете вставить никакие данные вручную в столбцы A:D в файле, где находится формула IMPORTRANGE (то есть в конечном, куда загружаются данные). Они как бы “зарезервируются” под весь открытый диапазон — ведь его размерность неизвестна заранее.
Ссылку на файл и ссылку на диапазон можно вводить не в формулу, а в ячейки вашего документа и ссылаться на них.
Так, если в ячейку A1 вы введете ссылку на документ (без кавычек), из которого нужно загрузить данные, а в ячейку B1 — ссылку на лист и диапазон (тоже без кавычек), то импортировать данные можно будет с помощью следующей формулы:
Вариант со ссылками на ячейки предпочтительнее в том смысле, что вы всегда можете легко перейти к исходному файлу (щелкнув по ссылке в ячейке) и/или увидеть, какой диапазон и из какой вкладки импортируется.
FILTER
С помощью FILTER мы можем отфильтровать данные по одному или нескольким условиям и вывести результат на рабочий лист или использовать результат в другой функции, как диапазон данных.
Одно условие
Пример, у нас есть таблица с продажами наших сотрудников, выведем из нее данные по одному работнику.
Введем в ячейку E3 вот такую формулу:
Обратите внимание, синтаксис немного отличается от привычных формул, вроде СУММЕСЛИН, там диапазон условия и само условие отделялось бы при помощи точки с запятой.
Введенная в одну ячейку формула возвращает нам массив из 9-ти ячеек с данными, но после примеров с функцией SORT мы этому уже не удивляемся.
Помимо знака равенства (=) в условиях можно использовать еще >, >=, <> (не равно), , а для чисел или дат можно использовать все эти знаки.
Два условия и работа с датой
Давайте усложним формулу и добавим в нее еще одно условие, по дате продаж, оставим все продажи начиная с 01.02.17
Так будет выглядеть формула, если вводить аргументы условия сразу в нее, обратите внимание на конвертацию текстовой записи даты при помощи ДАТАЗНАЧ:
Интерактивный график при помощи FILTER и SPARKLINE
А знаете, как еще можно использовать функцию FILTER? Мы можем не выводить результат функции на рабочий лист, а использовать его как данные для другой функции, например, спарклайна. Спарклайн — это функция, которая строит график в ячейке на основе наших данных, у спарклайна существует много настроек, таких, как вид графика, цвет элементов, но сейчас мы не будем на них останавливаться и воспользуемся функцией без дополнительных настроек. Перейдем к примеру.
Выпадающий список. Наш график будет меняться в зависимости от выбранного сотрудника в выпадающем списке, список делаем так:
- выделяем ячейку Е2;
- меню Данные → Проверка данных;
- правила: Значение из диапазона и в диапазоне выбираем столбец с сотрудниками из исходных данных, не переживайте, что фамилии повторяются, в выпадающем списке останутся лишь уникальные значения;
Нажимаем «Сохранить» и получаем выпадающий список в выбранной ячейке:
Ячейка с выпадающим список станет условием для формулы FILTER, напишем ее.
И вставим эту формулу в функцию SPARKLINE, которая на основе полученных данных будет рисовать в ячейке график.
Так это выглядит в динамике:
А вот как нарядно может выглядеть SPARKLINE с дополнительным настройками, в реальной работе, диаграмма выводит результаты деятельности за один день, зеленые столбцы — положительные значения, розовые — отрицательные.
Чем ближе ссылка, тем лучше
Иногда вам неизбежно понадобится ссылаться на информацию на другом листе в книге или в совершенно другой книге. Эти ссылки, особенно в других книгах, могут привести к очень медленной работе Google Таблиц.
В случае ссылки на разные книги проблема производительности может не иметь ничего общего с возможностями Google Таблиц. Низкая производительность может быть связана со временем, которое требуется для обмена информацией между листами.
Вообще говоря, чем ближе ссылка, тем выше производительность. Вы можете облегчить проблемы, отказавшись от обращений к другим книгам.
Если возможно, скопируйте / вставьте информацию, на которую вы ссылаетесь во второй книге, на новый лист / страницу в первой книге.
Кроме того, вы можете просмотреть свою книгу и заменить информацию о ячейках статическими значениями.
Импорт должен быть крайней мерой. Однако во многих случаях вы работаете с изменением / обновлением данных, которые требуют импорта.
IMAGE: добавляем изображения в ячейки
Функция IMAGE позволяет добавлять в ячейки Google Таблиц изображения.
У функции следующий синтаксис:
URL – единственный обязательный аргумент. Это ссылка на изображение. Ссылку можно указать напрямую в формуле, взяв в кавычки:
Или же поставить ссылку на ячейку, в которой ссылка хранится:
Последний вариант удобнее в большинстве случаев. Так, если у вас есть список книг и ссылки на обложки, достаточно одной формулы, чтобы отобразить их все:
На практике бывает, что ссылки на изображения хранятся на отдельном листе, и вы достаете их с помощью функции ВПР (VLOOKUP) или как-то иначе.
Аргумент mode может принимать четыре значения (если его пропустить, по умолчанию будет первое):
- изображение растягивается до размеров ячейки с сохранением соотношения сторон;
- изображение растягивается без сохранения соотношения сторон, целиком заполняя
- изображение вставляется с оригинальным размером;
- вы указываете размеры изображения в третьем и четвертом аргументам функции [height] и [width]. [height], [width], соответственно, нужны только при значении аргумента mode = 4. Они задаются в пикселях.
Четвертый режим может быть удобен, если вам нужно подбирать точный размер изображения в пикселях, меняя параметры height (высота) и width (ширина). Картинка будет сразу обновляться.
Обратите внимание, что при всех режимах, кроме второго, могут оставаться незаполненные области в ячейке, и их можно залить цветом:
Использование встроенной функции масштабирования
Это функция, добавленная в Google Таблицы, которая позволяет увеличивать и уменьшать масштаб.
Ниже приведены шаги по увеличению и уменьшению масштаба в Google Таблицах:
- Щелкните параметр Масштаб на панели инструментов. Появится раскрывающийся список с различными уровнями масштабирования.
- Выберите желаемый уровень масштабирования. Вы можете выбрать один из существующих или ввести собственное значение. Все, что меньше 100%, сделает вид меньше, а все, что больше, сделает его больше.
Вы также получаете те же параметры, когда щелкаете вкладку «Файл» и наводите курсор на параметр «Масштаб».
Хотя я рад, что у нас наконец-то появился способ увеличивать и уменьшать масштаб в Google Таблицах, есть еще два недостатка, которых, как мне хотелось бы, не было:
- Когда вы увеличиваете масштаб одного листа, он также применяет тот же масштаб ко всем другим листам документа.
- Нет ярлыка для изменения масштаба. Поэтому каждый раз, когда вам нужно увеличивать / уменьшать масштаб, вам необходимо выполнять указанные выше действия.
Хотя с первым недостатком ничего нельзя поделать (по крайней мере, на момент написания этого руководства), есть способ использовать ярлык для увеличения и уменьшения масштаба в Google Таблицах.
И у этого есть свои ограничения!
Максимальное допустимое значение в ячейке в Google Таблицах — 1.79769E + 308
1.79769E + 308 — это максимальное значение, разрешенное в ячейке в Google Таблицах. Я не думаю, что вам когда-либо понадобится такое большое число, как это,
Избегайте объединения вычислений путем преобразования ячеек формулы в статические значения
Кумулятивная рабочая нагрузка может быстро увеличиваться, когда Google Таблицам необходимо выполнять вычисления поверх вычислений.
Один из простых способов избежать накладных расходов — это преобразовать формулы в статические значения.
Это избавляет Таблицы от необходимости запускать вычисление для отображения значений в ячейках, и упрощает работу Таблиц по извлечению информации из этих ячеек в другие формулы.
Чтобы заменить ячейки формулы статическими значениями:
- Выделите и скопируйте все рассматриваемые ячейки
- Откройте контекстное меню
- Выберите «Специальная вставка».
- Выберите «Вставить только значения».
Это заменит выбранные ячейки ответом на формулу, поэтому Таблицам не нужно будет вычислять ответ при присвоении значения каждой ячейке. При выполнении этого в большом масштабе это может значительно сократить накладные расходы.
Максимальный размер файла — 100 МБ.
Когда вы конвертируете файл в Google Таблицы, он может иметь максимальный размер 100 МБ.
Для файлов, которые создаются в самих Google Таблицах, ограничение составляет 5 миллионов строк.
Будьте конкретны с диапазонами и формулами
Конкретное определение диапазонов в ячейках может значительно ускорить работу Google Таблиц. Хотя при запуске формулы удобно выбирать весь диапазон столбцов, это заставляет Таблицы выполнять вычисления по всем ячейкам в столбце, даже если они пустые.
Конкретность создает немного больше работы для человека, но обеспечивает бесперебойную работу Таблиц.
Например, если у вас есть данные в тысяче строк под столбцом A, более эффективно установить диапазон в формуле «A1: A1000», чем использовать весь столбец с «A: A».
Конкретные диапазоны могут существенно повлиять на время вычислений со ссылочными запросами к другим таблицам и командам VLOOKUP.
Кроме того, вы можете проверить свои формулы, чтобы увидеть, есть ли математически более эффективный способ произвести тот же расчет.
Если есть встроенная формула, всегда используйте ее. Например, =AVERAGE(A1:A10) is faster than =SUM((A1:A10)/10).
Предел вкладки (без ограничения, но не более 5 миллионов ячеек)
Как и в случае с ограничением строк, на момент написания этого руководства нет ограничения по табуляции.
Но существует ограничение в 5 миллионов ячеек, от которого зависит, сколько вкладок вы можете иметь в Google Таблицах.
По умолчанию новый рабочий лист содержит 26000 ячеек (100 строк и 26 столбцов). И если вы будете придерживаться этого ограничения на количество строк и столбцов на каждом листе, вы можете вставить максимум 192 рабочих листа.
После этого вы увидите диалоговое окно, напоминающее вам об ограничении ячеек в Google Таблицах.
Используйте “=IF()”, чтобы избежать ненужных вычислений формул.
Вы можете значительно ускорить медленную книгу Google Таблиц, используя условные операторы, чтобы избежать выполнения формул, которые не возвращают полезные данные.
Это может быть очень полезно для VLOOKUP и запросов из других книг.
Для этого нам нужно обернуть функцию «= if ()» вокруг формулы в ячейке.
Формат «IF» выглядит так:
Хотя вы могли бы использовать «= if ()», чтобы избежать сложных формул, мы будем использовать простую ситуацию в качестве примера.
В этом примере мы хотим определить средний балл людей, прошедших тест или набравших больше «70».
Итак, мы применяем формулу «= if (A2> 70, A2,») »к ячейке A2 и перетаскиваем ее вниз до A15.
Это возвращает баллы «75», «89», «89» и «95» в столбце B. Для целей примера мы вычисляем =AVERAGE (СРЕДНЕЕ) для содержимого столбца B, чтобы получить наш ответ.
В случае с примером мы не экономим много времени, поскольку возвращаем значение из того же файла. Тем не менее, это существенно сокращает накладные расходы, если мы извлекаем семестровые оценки проходящих студентов из другой рабочей тетради.
Использование этого метода может значительно сократить количество вычислений, которые необходимо выполнить Google Таблицам для заполнения данных.
Ярлык для увеличения и уменьшения масштаба в Google Таблицах
Другой способ увеличения и уменьшения масштаба в Google Таблицах — это изменение масштаба всего браузера.
Хотя этот метод во многих случаях не идеален, у него есть различные ярлыки, которые вы можете использовать.
Если вы используете ПК, вы можете использовать следующие ярлыки:
- Увеличение масштаба — Control + (удерживайте клавишу Ctrl и нажмите клавишу плюс)
- Уменьшение масштаба — Управление — (удерживайте клавишу управления и нажмите клавишу минус)
- Чтобы восстановить масштаб до 100% — Control 0 (удерживайте клавишу управления и нажмите клавишу 0)
Если вы используете Mac, используйте клавишу Command вместо клавиши управления.
Если вы используете Google Таблицы (или любые другие приложения Google) на смартфоне или iPad, вы можете ущипнуть и изменить уровни масштабирования.
Если вы используете мышь с ползунком, вы также можете использовать следующее: удерживайте клавишу Control, а затем измените ползунок, чтобы изменить уровни масштабирования.
Вы также можете изменить уровень масштабирования, вручную изменив значение в браузере.
Ниже приведены шаги по изменению уровня масштабирования в Google Таблицах в браузере Chrome:
- Щелкните значок настройки и управления в браузере Google Chrome (он находится в правой верхней части браузера).
- В открывшихся параметрах измените уровень масштабирования, щелкнув знак плюса или минуса.
Вы также можете найти аналогичный вариант увеличения в FireFox и других популярных браузерах.
Недостатком этого метода является то, что когда вы увеличиваете и уменьшаете масштаб электронной таблицы, он также делает то же самое для всего браузера. Это изменяет не только уровень масштабирования ячеек в области рабочего листа, но также меню и панель инструментов в Гугл Таблицах. Не только это, но и изменение уровня масштабирования всех других окон, открытых в этом браузере.
Если вы использовали Google Таблицы хотя бы несколько минут, я уверен, что вы почувствовали, что у них есть некоторые ограничения. В этой статье я перечисляю несколько ограничений Гугл Таблиц. Представление о том, что они могут и чего нельзя делать, поможет вам наилучшим образом использовать этот инструмент для работы с электронными таблицами.
Поскольку я уже много лет пользуюсь Microsoft Excel, я неизменно сравниваю эти два инструмента для работы с электронными таблицами и провожу сравнения.
Примечание. В Google Таблицах было много ограничений, которые были сняты путем добавления в них новых функций. Всегда добавляются новые функции, и это делает Google Таблицы отличным выбором в качестве инструмента для работы с электронными таблицами.
Используйте условное форматирование только при необходимости
Условное форматирование — отличный инструмент для удобства чтения в Google Таблицах; однако это основной вклад в накладные расходы на обработку.
Цветовое кодирование, например, был ли доход от продукта прибылью или убытком, отлично подходит для удобочитаемости. Однако производительность не так хороша, когда вы работаете с огромными объемами данных.
Если вы удаляете условное форматирование, вам следует сделать копию исходного листа и работать с новой версией. Восстановление условного форматирования может быть утомительным.
Вы можете удалить условное форматирование:
- Выбор строки или столбца с правилом форматирования (синяя стрелка)
- Открытие меню «Формат» (красная стрелка)
- Выбор «условного форматирования» (желтая стрелка)
- Отсюда вы можете удалить правила, щелкнув или коснувшись значка корзины, рядом с правилом во вложенном окне «Условное форматирование».
Примечание. Использование таких функций, как «Сортировка по цвету», также может увеличить накладные расходы.
Максимум 5 миллионов ячеек
Документ Google Таблиц может содержать не более 5 миллионов ячеек. Они могут быть на одном листе или на нескольких листах.
Если у вас уже достигнут предел в 5 миллионов в меньшем количестве столбцов, он не позволит вам добавить больше столбцов (и наоборот, то есть, если предел в 5 миллионов ячеек будет достигнут с определенным количеством строк, он не позволит больше строк ).
Если вы попытаетесь это сделать, вы увидите подсказку, как показано ниже:
Обратите внимание, что ограничение распространяется на листы, созданные в Google Таблицах или конвертированные в Google Таблицы.
Максимум 18 278 столбцов
Максимум, вы можете иметь 18 278 столбцов в Google Таблицах на листе.
Если вы попытаетесь добавить дополнительные столбцы, превышающие этот предел, вы увидите подсказку, как показано ниже.
Кроме того, если у вас уже много строк и вы превысите ограничение в 5 миллионов ячеек, даже если номер вашего столбца меньше 18278, вы не сможете вставить больше столбцов.
Ограничения, связанные с формулой:
- Формулы GoogleFinance : не более 1000 формул GoogleFinance.
- Формулы ImportRange : не более 50 формул перекрестных ссылок на книги.
- CONCAT : вы можете объединить не более 50000 символов.
- Формулы ImportHtml, а также ImportFeed, ImportData или ImportXml : не более 50 функций для внешних данных.
Примечание . Причина, по которой Google Таблицы вынуждены бороться с таким количеством ограничений, заключается в том, что они основаны на Интернете. Хотя это обеспечивает беспроблемный онлайн-опыт, он имеет ряд ограничений. Однако скорость, с которой развиваются таблицы Google, впечатляет, и я поражен тем, как много людей отказались от других инструментов для Google Таблиц.
Если у вас возникают проблемы с производительностью в таблицах Google, вы можете многое сделать, чтобы ускорить медленные Google Таблицы . Медленные Google Таблицы вызывают простые вычисления, которые обычно занимают от нескольких секунд до нескольких десятков секунд или минут. В худшем случае медленный лист зависнет или выйдет из строя.
Может быть много причин, которые приводят к медленным рабочим книгам Гугл Таблиц, и в этом руководстве мы рассмотрим 10 простых способов ускорить медленные Google Таблицы .
Разбивать большие листы
Когда ничего не помогает, возможно, пришло время разделить книгу. Какими бы мощными ни были Google Таблицы, у приложения есть свои ограничения. Чтобы заставить Google Таблицы работать с приемлемой скоростью, вы можете разделить свои данные на две или более книг.
К сожалению, это исправление означает, что вам придется повторить одну и ту же работу для каждой книги и объединить результаты.
Кроме того, это означает, что некоторый анализ будет намного сложнее. При разделении книг рекомендуется оставить исходную версию без изменений и работать с копией.
Следование этим советам может превратить многие медленные проекты Google Таблиц обратно в удобные электронные таблицы. Чем эффективнее вы вводите информацию и расчеты в Google Таблицах, тем быстрее они работают.
Знание о зависаниях, которые могут привести к медленной работе Google Таблиц, может помочь вам лучше управлять своими книгами, чтобы в первую очередь избежать проблем с производительностью.
Итак, это 10 быстрых и простых методов, которые вы можете использовать для ускорения медленных Google Таблиц. В большинстве случаев вы должны увидеть значительную разницу в скорости при использовании одного или нескольких из этих методов.
Наша компания использует Google Search Console для проверки статуса индексации и оптимизации видимости наших веб-сайтов. Также в консоли можно проверить, какие внешние веб-сайты ссылаются на вашу страницу. Однажды я просматривал страницу «Top linking sites» и заметил сильное торможение скроллинга. Оно происходило, когда я выбирал отображение большого массива данных (500 строк) вместо стандартных 10 результатов.
Раздел «Top linking sites» в Google Search Console, 500 строк на страницу
Я интересуюсь производительностью фронтенда, поэтому не мог удержаться и решил разобраться, в чём дело. В конце концов, Google активно стремится к повышению веб-производительности, поэтому стоит ожидать, что собственные публичные приложения компании будут хорошим эталоном.
В подобных случаях невероятно полезны профили производительности: часто бывает достаточно посмотреть отчёт, чтобы понять, почему какой-то элемент имеет низкую производительность. Я открыл DevTools / Performance и начал запись, немного прокрутил список вниз, а затем остановил запись. И вот что я увидел:
Профиль производительности скроллинга таблицы данных «Top linking sites», очень низкий FPS
Эти красные треугольники в блоках «Task» дают нам понять, что при скроллинге какие-то операции занимают больше времени, чем это приемлемо. Обычно для достижения идеального скроллинга в 60 FPS мы стремимся, чтобы эти блоки выполнялись менее чем за 16 мс. На показанном выше изображении блоки с красными треугольниками в среднем выполняются примерно 150 мс, что приводит приблизительно к 6–7 FPS. Да ладно, Google, ты ведь способен на большее!
Шкала времени наверху показывает, насколько занят CPU различными видами задач: оранжевый цвет — это JavaScript, фиолетовый — это структура и стили, а зелёный — отрисовка. Здесь всё фиолетовое, то есть проблема не в JavaScript, а в DOM/стилизации:
График показывает, что CPU занят обработкой структуры
Это подтверждается каскадным графиком под графиком CPU. В нём используются те же цветовые обозначения и в большинстве записей присутствует много оранжевого и немного меньше фиолетового и зелёного. В нашей записи видно, что время в основном тратится на обновление слоёв, это видно по тексту в фиолетовых блоках, гласящему Update layer tree :
На каскадном графике видено, что скроллинг тормозит из-за «Update layer tree»
Слои создаются для скроллящегося контента, переводного контента и так далее. Возможно, их очень много? Давайте выясним!
В Chrome DevTools содержится впечатляющее количество полезных инструментов, но некоторые из них найти довольно сложно. Одним из таких скрытых сокровищ является панель Layers; чтобы найти её, нужно нажать кнопку меню в DevTools и выбрать More tools / Layers . В моём случае это выглядит так:
Панель «Layers» в Chrome DevTools; слой заполнен кучей контента
Слоёв не очень много, но есть парочка огромных. Похоже, в них куча контента, и это приводит нас к выводу о том, что используемый Google datagrid не применяет виртуализированный рендеринг. Частично это объясняет причины торможения, но 500 строк — это всё равно не очень много. Должно быть что-то ещё…
К сожалению, DOM не особо производителен, когда содержит много элементов. Если бы он был производительным, техники виртуализации, реализованные в различных популярных в вебе data grids на JS, не потребовались бы. На данном этапе мы можем предположить, что таблица рендерит много элементов. Создав Live expression в DevTools Console, вы можете пощёлкать по панели элементов и выяснить это. Переключимся на Console , нажмём на кнопку Create live expression (глаз) и введём $0.querySelectorAll('*').length .
Теперь нажимая на панель Elements , мы видим следующее, сначала для всей таблицы:
Live expression демонстрирует количество элементов-потомков для выбранного элемента
Как мы видим, для отображения всего 500 строк он создаёт больше 16 тысяч элементов DOM, что немного излишне. Нажав на тело документа, мы увидим следующее:
Куча элементов!
Вся страница содержит больше 38 тысяч (!) элементов, а так быстрое приложение не пишут! Очевидно, что ситуацию можно было бы улучшить, использовав data grid с виртуализированным рендерингом, но давайте посмотрим, можно ли сделать что-то меньшими усилиями.
Учитывая данные в профиле производительности, я подозреваю, что структура всей страницы создаётся при скроллинге таблицы. А создание структуры такого количества элементов — это затратная операция. Если бы был какой-то способ ограничения её влияния…
Скроллинг сильно улучшился!
Каждый кадр теперь занимает примерно 16 мс, и мы скроллим почти на 60 FPS вместо 6–7. Потрясающе!
Вот и всё, десятикратное увеличение скорости благодаря одной строке CSS. Вы можете попробовать «починить» свою Google Search Console.
Очень много букв, но есть разборы интересных кейсов, все примеры, кстати, можно рассмотреть поближе в Google Документе goo.gl/cOQAd9 (файл-> создать копию, чтобы скопировать файл себе на Google Диск и иметь возможность редактирования).
Оглавление:
Если результат формулы занимает больше одной ячейки
Сначала про важную особенность отображения результатов формул в Google Таблицах. Если ваша формула возвращает более одной ячейки, то весь этот массив отобразится сразу и займет столько ячеек и столбцов, сколько для него потребуется (в Excel для этого нужно было бы во все эти ячейки ввести формулу массива). На следующем примере посмотрим, как это работает.
Поможет отсортировать диапазон данных по одному или нескольким столбцам и сразу вывести результат.
=SORT(сортируемые данные; столбец_для_сортировки; по_возрастанию; [столбец_для_сортировки_2, по_возрастанию_2; . ])
Пример на скриншоте ниже, мы ввели формулу только в ячейку D2 и сортируем данные по первому столбцу (вместо ИСТИНА/ЛОЖЬ можно вводить TRUE/FALSE).
(здесь и далее — примеры для российских региональных настроек таблицы, рег. настройки меняются в меню файл → настройки таблицы)
Как в SORT добавить заголовки таблицы?
С помощью фигурных скобок <> создаем массив из двух элементов, шапки таблицы A1:B1 и функции SORT, элементы отделяем друг-от-друга с помощью точки с запятой.
Как объединить несколько диапазонов данных и отсортировать (и не только)?
Давайте рассмотрим, как можно объединять диапазоны для использования в функциях. Это касается не только SORT, этим приемом можно пользоваться в любых функциях, где это возможно, например в ВПР или ПОИСКПОЗ.
Кто читал предыдущий пример уже догадался, что делать: открываем фигурную скобку и собираем массивы для объединения, отделяя их друг-от-друга точкой с запятой и закрываем фигурную скобку.
Можно объединить массивы и не использовать их в формуле, а просто вывести на лист, скажем, собрав данные с нескольких листов вашей книги. Для вертикального объединения необходимо соблюсти только одинаковое кол-во столбцов во всех фрагментах (у нас везде по два столбца).
А на скриншоте ниже — пример горизонтального объединения, в нем вместо точки с запятой используется обратный слэш и нужно, чтобы кол-во строк во фрагментах совпадало, иначе вместо объединенного диапазона формула вернет ошибку.
(точка с запятой и обратный слэш — это разделители элементов массива в российских региональных настройках, если у вас не работают примеры, то через файл — настройки таблицы, убедитесь, что у вас стоят именно они)
Ну а теперь вернемся к горизонтальному массиву и вставим его в функцию SORT. Будем сортировать данные по первому столбцу, по убыванию.
Объединение можно использовать в любых функциях, главное — соблюдать одинаковое количество столбцов для вертикального или строк для горизонтального объединения.
Все разобранные примеры можно рассмотреть поближе в
Google Документе.
Избегайте функций, которые требуют пересчета всего листа при любом изменении
Несколько полезных функций в Google Таблицах заставляют выполнять пересчет по всему листу каждый раз, когда в листе происходит изменение (это называется изменчивыми функциями).
Эти мощные функции могут быстро увеличить объем работы над файлом Google Таблиц. Избегайте их при работе с большими объемами данных.
Основные четыре функции в Google Таблицах, которые могут вызвать проблемы с пересчетом:
- NOW
- TODAY
- RAND
- RANDBETWEEN
Если у вас медленная книга и вы используете одну или несколько из этих функций, они, скорее всего, ответственны за замедление.
Удаление этих функций ускорит работу Google Таблиц.
Кроме того, вам следует избегать использования условного форматирования в сочетании с любой из этих четырех функций. Их совместное использование может быстро перегрузить программу.
Перезагрузить все
Если у вас низкая производительность в Google Таблицах, первое, что вам следует сделать, это убедиться, что Google Таблицы ответственны за проблему.
На самом низком уровне полностью закройте свой веб-браузер (или приложение Google Таблиц) и перезапустите программу.
Если проблема все еще возникает, попробуйте перезагрузить или перезагрузить компьютер или другое устройство, которое вы используете.
Простой перезапуск устраняет бесчисленные потенциальные причины низкой производительности без необходимости проводить какое-либо расследование проблемы.
Если перезапуск не помог, попробуйте очистить кеш браузера. В Google Chrome это можно сделать следующим образом:
Я использовал Chrome на скриншотах. Другие популярные браузеры также используют аналогичные шаги для очистки кеша.
Вы также можете попробовать отключить надстройки / расширения браузера.
Вы можете сделать это в большинстве браузеров, просто открыв Лист в «окне инкогнито». Если Лист работает правильно в режиме «инкогнито», вы можете отключить надстройки, пока не найдете в чем причина.
Отключить надстройки в Chrome:
Если у вас по-прежнему возникают проблемы с производительностью в Google Таблицах, теперь можно с уверенностью предположить, что проблема в самих Таблицах.
Читайте также: