Гугл таблицы: фильтры, списки, формулы

Суперские tips & tricks

РубрикаСложность материалаВЫСОКАЯВремя на чтение38 минут

Содержание:

 

Одним из правил хорошего тона в современном мире, помимо умения открывать пиво зажигалкой, считается знание основ Google Sheets. Поэтому давай-ка научимся правильно использовать Гугл таблицы. Неправильно использовать ты и сам сможешь научиться.

Основы

Если ты новичок в этом бойцовском клубе, то держи несколько правил работы, с которых стоит начать. Если ты играешь уже на уровне «Ветеран», то свапай или скроль дальше.

Создание и открытие файла

Создать новую таблицу ты можешь, открыв Google Docs в браузере, либо перейти на https://docs.google.com/spreadsheets/. Ранее созданные таблицы будут отображаться списком ниже

Создавать новые и открывать созданные ранее таблицы можно на главной странице сервиса и через «Google Диск». По умолчанию, созданные через сервис Google Sheets файлы, сохраняются в корне Диска

Как сохранять прогресс?

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

Помимо того, что ваш файл будет отображен в списке недавно просмотренных/созданных, физическая копия дублируется на Goolge Диск — https://drive.google.com/drive/.

Совместимость с Excel

Если у тебя на работе только допотопный Excel, а на домашнем ноуте прогрессивный Google Sheets, то не переживай — совместимость (в т.ч. обратная) есть. Можно загрузить .xls-файл на Google Диск и просто открыть его в Google таблицах. Для этого в Google Диске нажмите «Создать» и «Загрузить файлы» После загрузки xls-файла откройте его и выберите «Открыть с помощью Google Таблицы»

И наоборот, чтобы Гугл таблицу сохранить так, чтобы потом работать с ней в Excel, в меню «Файл» — «Скачать» выберите файл xlsx или csv

Можно откатиться на более раннюю версию

Если вам нужно вернуть более старую версию таблицы, то это можно сделать — в Гугл таблицах хранится вся история изменений. Чтобы посмотреть эти версии, кликните на «Все изменения сохранены на Goolge Диске» справа от основного меню

Откроется окно, где вы можете не только выбрать версию, но и увидеть её предварительный просмотр.

Функция «ВПР» (vlookup)

Производит поиск по первому столбцу диапазона и возвращает значение из найденной ячейки. VLOOKUP Имеет четыре аргумента:

  • Запрос — то, что мы хотим найти в столбце
  • Диапазон — ячейки, внутри которых мы будем искать
  • Индекс – номер столбца (от начала диапазона), где нужно найти то, что мы вписали в запрос
  • Сортировка — логическое значение (истина/ложь). Чтобы вернуть точные совпадения ставьте 0

Как она работает?

В листе «Пример1» мы разберем самую простую реализацию функции VLOOUKUP. У нас есть лист с данными. Нам необходимо, чтобы функция искала нужное значение в листе с «Данными». Для начала создадим выпадающий список в ячейке А2 («Данные» -> «Настроить проверку данных»). В качестве диапазона выберем первый столбец в листе «Данные»:

Далее в ячейку B2 вставляем формулу: =VLOOKUP(A2;’Данные’!A1:C24;3;0). Это позволит нам отображать 3 столбец (т.е. выручку) у выбранной нами пиццерии


Неточный поиск (наиболее близкое значение)

Иногда может потребоваться поиск не точного, а приблизительного значения. За это отвечает четвертый параметр VLOOKUP — сортировка. Для этого нужно поставить значение TRUE, тогда функция вернет значение, ближайшее к запрошенному (меньшее либо равное). См. лист «Пример2».

В зависимости от количества денег, функция подставляет ближайшую ачивку, которую мы можем купить. Единица в конце формулы означает тоже самое, что и FALSE (допускаются оба варианта написания).

Полная формула: =VLOOKUP(D6;A6:B10;2;1)

Поиск по нескольким условиям (по двум столбцам)

ВПР позволяет выполнять поиск по нескольким условиям. Например, нам необходимо показать выручку пиццерий у партнёров. Чтобы её вывести нужно учитывать оба этих параметра. Создадим выпадающие списки с ними. Смотрим лист «Пример3».

Теперь пишем формулу в ячейке G2: =ArrayFormula(VLOOKUP(E2&F2;{A2:A3&B2:B3\C2:C3};2;0)). Первый параметр — значения которые мы ищем, там ссылаемся на выпадающие списки E2 и F2. Далее идёт массив (ArrayFormula), который здесь используется как раз для объединения столбцов. Бэкслеш используется для отделения столбцов.

Открыть этот пример VLOOKUP в Google Таблицах

Функции INDEX и MATCH

Проблема функции ВПР (VLOOKUP), как и его аналога ГПР (HLOOKUP) в том, что они ищут данные по одному столбцу или строке. Но что делать, если нам нужен поиск по нескольким параметрам, т.е. и по строке и по столбцу одновременно? Функция, которая умеет выдавать содержимое ячейки из таблицы по номеру строки и столбца — это функция INDEX, а в качестве её параметров часто используется MATCH (русскоязычный аналог — ПОИСКПОЗ).

Поиск по нескольким параметрам (ВПР 2D)

Откроем наш пример:

Для начала создадим выпадающие списки для нашего примера («Данные» -> «Настроить проверку данных»).

Теперь нам нужно, чтобы при выборе параметров нужные данные подставлялись. Как и писали выше, пишем функцию INDEX, внутри которой мы будем используем функцию MATCH.

Полная формула: =INDEX(B4:E12;MATCH(G5;B4:B12;0);MATCH(H5;B4:E4;0))

Теперь все данные подставляются. Как это работает? Первый параметр в функции INDEX — это массив поиска. Мы выбрали всю таблицу (вместе с названием столбцов) — B4:E12. Далее нужно указать еще два аргумента — строку и столбец. В обоих случаях мы используем для этого функцию MATCH

Функция MATCH в свою очередь содержит тоже два аргумента. Первый — это запрос, т.е. что мы будем вообще искать. Мы ссылаемся на выпадающие списки, т.е. что там выбрано, то и ищем (ячейки G5 и H5). Далее идёт диапазон. В первом случае мы выбрали столбец (ФИО Сотрудника — B4:B12). Во втором строку, где указаны наши «столбцы» (B4:E4)

Открыть этот пример INDEX в Google Таблицах

Важно!

С помощью такой формулы вы не сможете получить данные с двух столбцов — только столбец и строка, т.е. их пересечение. Например, в таблице ниже вы не сможете посчитать выручку, «запихнув» в INDEX два условия MATCH по столбцам «Партнёры» и «Пиццерии».

Формула =INDEX(A2:C24;MATCH(F5;A2:A24;0);MATCH(G5;B2:B24;0)) выдаст ошибку по третьему параметру в формуле. Чтобы использовать оба параметра при поиске см. раздел VLOOKUP чуть выше.

Функция FILTER

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

Фильтр по нужным данным

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

Создаем «Лист2» и делаем скелет в нём. Указываем такие же столбцы, как и в оригинальной таблице. Далее в ячейке под столбцом «Партнеры» вставляем функцию =FILTER(‘Лист1’!A2:C24;‘Лист1’!A2:A24=«Партнер1»).

После этого таблица автоматически заполнится данными «Партнера 1».

Как это работает? В примере функция FILTER содержит два аргумента (может быть несколько условий, у нас оно одно)

  • Диапазон  — ‘Лист1’!A2:C24; —  это тот самый диапазон, который мы будем фильтровать, т.е. все данные будут браться отсюда. В данном случае, это будет вся оригинальная таблица
  • Условие  — ‘Лист1’!A2:A24=»Партнер1″ — здесь мы указали условие, можно сказать, принцип по которому будет произведена фильтрация. Мы указали условие, что нам нужны данные по таблице там, где будет совпадение «Партнер1» в столбце А.

Фильтр через выпадающий список

Вариант выше плох тем, что «копировать» всю таблицу нужно будет вручную. Т.е. для каждого партнёра нужна будет своя формула, свой фильтр. Примерно будет выглядеть вот так:

Лучшим вариантом здесь будет выпадающий список, такой, чтобы при выборе партнёра, мы получали данные по пиццериям. Делаем это с помощью опять же с помощью FILTER.  Встаем на ячейке H3 в «Листе2» и выбираем «Данные» -> «Настроить проверку данных». В качестве диапазона выбираем столбец «Партнеры» из «Листа1«.

У нас получится выпадающий список с партнёрами:

Теперь в ячейке H4 вставляем функцию: =FILTER(D2:F30;D2:D30=H3).

После этого у нас будут фильтроваться данные в зависимости от выбранного элемента в ячейке H3


Фильтр с чекбоксами

Можно сделать отображение информации по флажкам в чекбоксе. Для этого мы создадим небольшой скелет (Лист3) и добавим три чекбокса («Вставка» -> «Флажок»)

Дальше с помощью функции TRANSPOSE (она используется для транспортировки набора данных в другие ячейки) мы спарсим названия столбцов в наш перечень. Полная функция: =TRANSPOSE(‘Лист1’!A1:C1)

Теперь в ячейке H1 пишем основную формулу: =FILTER(‘Лист1’!A1:C;TRANSPOSE(F2:F4)). Она погружает данные с основной таблицы («Лист1»). При этом в условии фильтра указаны наши чекбоксы F2-F4, которые имеют два состояния — FALSE и TRUE. Т.е. данные будут отображаться с учетом состояния чекбоксов

Открыть этот пример FILTER в Google Таблицах

Огромное количество примеров функции ФИЛЬТР вы можете открыть в сборнике сайта Contributor (открыть в Goolge таблицах)

 Функция «QUERY»

Функция QUERY позволяет сделать выборку нужных строк из таблицы с помощью SQL-запроса и отсортировать их. Сложность в том, что нужно знать синтаксис SQL, но самую базовую выборку делать очень легко. В сети много примеров бездарного использования функции QUERY, мы же сейчас сделаем крутой выпадающий список с фильтрацией данных

Подготовка. Парсим данные. Делаем выпадающий список.

Итак, у нас есть обычная таблица с несколькими столбцами данных. Лист так и называется — «Данные».

На листе «Проверка» мы с помощью функции UNIQUE отбираем уникальные значения для для столбца А и столбца B

Выбираем нужный диапазон для каждого столбца из листа «Данные»

В итоге, в листе «Проверка» у нас будут два столбца с уникальными значениями. Добавим к ним функцию SORT для, ожидаемо, сортировки. В итоге формулы у нас будут следующие: =SORT(UNIQUE(‘Данные’!A2:A)) и =SORT(UNIQUE(‘Данные’!B2:B))

Переходим на лист «Отчет». Подписываем наши два столбца, как Партнеры и Пиццерии. После чего,  заходим в меню «Данные» и выбираем «Настроить проверку данных».

В открывшемся окне «Проверка данных» нужно нажать на иконку таблицы, чтобы выбрать диапазон данных.

Сам диапазон мы берем из листа «Проверка», где у нас собраны и отсортирована выборка из уникальных значений основной таблицы. Соответственно, для партнеров мы выбираем «Столбец А». Аналогичную операцию проделываем с пиццериями («Столбцом B»)

Не забудьте поставить пункт «Запрещать ввод данных» после выбора диапазона и нажимайте «Сохранить»:

После того, как вы это сделали, у нас будет готов шаблон для выпадающих списков в листе «Отчет»:

Основная часть. Делаем запросы. Фильтруем данные.

Теперь мы воспользуемся функцией Query, чтобы выцепить из основной таблицы (лист «Данные») нужные нам элементы. Пусть это будет «Партнёр» и «Город».  Пишем такую формулу: =QUERY(‘Данные’!A1:D24;»SELECT * WHERE A = ‘Партнер1’ AND D = ‘Москва'»;1). И получаем отфильтрованные данные

С помощью формулы IF сделаем заготовку для нашего фильтра.

Для партнеров формула будет такой: =IF(A2=»Все партнеры»;»»;» AND LOWER(A) = LOWER(‘»&A2&»‘) «)

А для пиццерий такой: =IF(B2=«Все пиццерии»;«»;» AND LOWER(B) = LOWER(‘»&B2&«‘) «)

В итоге у нас получится выбор данных при изменении нашего выпадающего списка для каждого значения

А сейчас объединим эти две формулы, чтобы был один полноценный запрос:

=IF(A2=«Все партнеры»;«»;» AND LOWER(A) = LOWER(‘»&A2&«‘) «)&IF(B2=«Все пиццерии»;«»;» AND LOWER(B) = LOWER(‘»&B2&«‘) «)

Теперь нужно это всё перенести в функцию query, чтобы выпадающий список фильтровал запросы. Для этого нужно удалить часть запроса в query (на скрине как раз выделена эта часть):

Итоговая формула будет выглядеть вот так:=QUERY(‘Данные’!A1:D24;«SELECT * WHERE 1=1»&IF(A2=«Все партнеры»;«»;» AND LOWER(A) = LOWER(‘»&A2&«‘) «)&IF(B2=«Все пиццерии»;«»;» AND LOWER(B) = LOWER(‘»&B2&«‘) «);1)

Результатом станет то, что при выбора Партнера и пиццерии (можно оставить все), функция query будет показывать нам отфильтрованные данные из основной таблицы:

Открыть этот пример QUERY в Google таблицах

Функция «Importrange»

Главный чит в Google Sheets. Позволяет целиком скопировать данные из одной таблицы в другую. Одной формулой. Форматирование при этом не переносится — только данные. По сути, это обычная ссылка на другую таблицу, а не её «копия». Importrange — отличное решение при импорте данных из одного листа в другой.

Есть условие — для таблицы, на которую вы ссылаетесь, должен быть настроен доступ (разрешение) на извлечение данных. Доступ остается в силе до тех пор, пока пользователь, предоставивший доступ, не будет удален из источника. Imortrange отлично подойдет для того, чтобы работать с данными, к которому у вас есть доступ «Только для просмотра», а также чтобы сделать одну таблицу из множества других (импортировать можно «кусками»)

Откроем наш пример таблицы:

Функция Imortrange имеет всего два аргумента:  ссылка на таблицу (ключ) и диапазон, который будем копировать. Ключ — вот эта часть ссылки на таблицу с которой вы хотите скопировать данные. Его можно скопировать из адресной строки:

Это и будет ключом. Дальше идёт диапазон. Тут собственно мы копируем либо всю таблицу, либо её часть. В нашем примере мы копируем данные на соседний лист, но всё это сработает и в случае, если вы будете это делать на совершенно новую/другую таблицу.

Полная формула: =IMPORTRANGE(«1J-Wk9BGHM4tVPkaOGuYT8VS3CUUt-AwoEWgrbsCv1vs»; «Лист1!A1:C9»)

Открыть этот пример Importrange в Google таблицах

Внутренняя ошибка импорта

Если возникает эта ошибка, значит у вас есть некоторая опечатка в формуле, хотя она по всем правилам написана правильно. Как такое получается?

Чтобы исправить эту ошибку необходимо исправить диапазон.

Не правильно: =IMPORTRANGE(«1J-Wk9BGHM4tVPkaOGuYT8VS3CUUt-AwoEWgrbsCv1vs»;‘Лист1’!A1:C9)

Правильно: =IMPORTRANGE(«1J-Wk9BGHM4tVPkaOGuYT8VS3CUUt-AwoEWgrbsCv1vs»; «Лист1!A1:C9»)

Функция JOIN

Объединяет значения в массиве данных, добавляя между ними разделитель. Два обязательных аргумента: разделитель и массив (или одно значение). Самый просто пример использования ниже:

Какой самый простой способ объединения данных различных ячеек в одну? Для этого можно использовать функцию JOIN, которая объединит нужные нам ячейки, а с помощью разделителя придадим удобочитаемый вид.

Полная формула: =JOIN (» «;A5:B5). В нашем случае разделителем является пробел. Растянем формулу на всю вертикаль таблицы и получим результат

С помощью JOIN можно «копировать» информацию из других ячеек в любой последовательности. Так же функцию можно использовать в связке с FILTER для того, чтобы получить все совпавшие элементы из столбца. Для примера возьмем другую таблицу на втором листе (лист «Пример2»)

Нам нужно посчитать квартальную выручку каждой пиццерии. Т.е. с помощью TEXTJOIN мы соединяем два параметра — месяц и выручку. В качестве диапазона данных (третий аргумент в функции TEXTJOIN) мы используем FILTER. Здесь мы использовали функцию TEXTJOIN (вместо «стандартной JOIN), чтобы избавиться от последнего разделителя в перечислении месяцев (столбец «Квартальная выручка»).

Полная формула: =TEXTJOIN(«, «;TRUE;FILTER($C$2:$C$24;$B$2:$B$24=G2))&SPLIT(» : «;» «)&SUM(FILTER($D$2:$D$24;$B$2:$B$24=G2))

Открыть этот пример JOIN в Google таблицах

Где взять еще примеры?

Огромное количество уникальных примеров вы можете найти в канале у Рената Шагабутдинова. Этот человек настоящий сенсей и виртуоз Гугл таблиц, автор трех книг, преподаватель в онлайн-школе Skillbox и человек, который автоматизировал бизнес-процессы в МТС и МИФ. Это действительно уникальная обновляемая (!) коллекция различных скриптов, формул. Обрати внимание, что нужен Телеграм. Ссылки в таблице ведут на канал в телеге, поэтому обзаводись. Открыть примеры в Google Sheets

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