Гугл-таблицы. Сводные таблицы и SQL

Илья Воронцов

Мастерская дата-журналистики Системного Блока, ЛШ-2024, Дубна

Сводные таблицы

OLAP-куб

Но мы умеем смотреть только на плоское

OLAP-куб

  • Roll up: объединить показатели в категории разрезов уровнем выше (город => область).
  • Drill Down: разбить обобщённые категории на категории уровнем ниже (область => город).
  • Slice / Dice: зафиксировать значение (одно/несколько) по одной из осей
  • Pivot: поменять оси табличного представления.

OLAP-куб

Slice / Dice: зафиксировать значение по одной из осей

OLAP-куб

Slice / Dice: зафиксировать значение по одной из осей

OLAP-куб

  • Roll up: объединить показатели в категории разрезов уровнем выше (город => область).
  • Drill Down: разбить обобщённые категории на категории уровнем ниже (область => город).

OLAP-куб

Pivot: поменять оси табличного представления.

Цепочки преобразований — другой способ думать о...

  • select — отфильтровать объекты
  • map — преобразовать объекты во что-то
  • reduce — агрегировать объекты в единое значение

Запросы к данным — SQL


= QUERY(A1:E100; "SELECT A, B WHERE C > 100 AND D = 42")

Запросы к данным — SQL


SELECT колонки [PIVOT колонка] WHERE условие [GROUP BY колонки] [ORDER BY колонки ASC/DESC] [LIMIT количество [OFFSET сдвиг]] 

Группировка — GROUP BY


select dept, max(salary) group by dept
deptmax-salary
Eng800
Marketing600
Sales1234

«Вращение» — PIVOT


select sum(salary), max(lunchTime) pivot dept
Eng sum-salaryMarketing sum-salarySales sum-salary Eng max-lunchTimeMarketing max-lunchTimeSales max-lunchTime
210080075013:00:0013:00:0012:00:00

select sum(salary), max(lunchTime) pivot dept
Eng sum-salaryMarketing sum-salarySales sum-salary Eng max-lunchTimeMarketing max-lunchTimeSales max-lunchTime
210080075013:00:0013:00:0012:00:00

Агрегирующие функции

  • COUNT
  • SUM / AVG
  • MAX / MIN

Склеивание таблиц по идентификатору (VLOOKUP / ВПР)


= VLOOKUP(искомое значение;
          таблица;
          номер столбца;
          интервальный просмотр)

идентификатор — самая левая колонка!

интервальный просмотр зафиксировать в 0

Не Excel-ем единым

Не Excel-ем единым

csv/tsv — текстовый файл. Значит можно редактировать в текстовом редакторе

Регулярные выражения

OpenRefine

diff

Warning: Будьте осторожны с данными, содержащими разделители (табуляции, новые строки, пробелы, запятые)

Не Excel-ем единым

Данные могут прийти в других форматах

  • Данные JSON можно извлечь при помощи jq
  • XML/HTML — любой XML-парсер. Язык CSS-запросов / XPath