Как сгруппировать данные по месяцам в Google Sheets


39

У меня есть Google Sheet, который содержит различные метрики для каждого дня. У каждого дня есть свой ряд:

day        | cost | impressions | clicks | conversions
2014-02-01 | $45  | 3,540       | 80     | 5
2014-02-02 | $49  | 3,700       | 88     | 7
2014-02-03 | $42  | 3,440       | 79     | 7
2014-02-04 | $51  | 3,940       | 91     | 10

Я хочу , чтобы повернуть таблицу и суммировать cost, impressions, clicksи conversionстолбцы по месяцам (не в день) , как это:

Month        | Sum of cost | Sum of impressions | Sum of clicks | Sum of conversions
February     | $187        | 14620              | 338           | 29

В Excel я просто использовал эту Group byфункцию, но вижу, что она недоступна в Google Sheets.


2
Правильный ответ на 2018 год: webapps.stackexchange.com/a/120852
Кос,

Ответы:


18

Используя Data->Pivot table report...предложения именно то, что вы просите. Возможно, вам придется использовать « Новые листы Google ».
Я использую это как настройку по умолчанию, и было легко достичь того, что вы хотели, как в Excel.

Здесь в своем ответе я объясняю, как включить новые электронные таблицы.


Кажется, я не совсем понял проблему.

Сначала нам нужен месяц. Для этого добавьте новый столбец, чтобы извлечь дату, используя =MONTH(DATE_COLUMN).

введите описание изображения здесь

Затем создайте сводный отчет:

введите описание изображения здесь


попробовал «новые листы Google», и нет возможности сгруппировать даты по месяцам в отчетах сводной таблицы, может быть, вы могли бы пролить свет?
Богдан

Извините, я думал, что главная проблема в том, что вы вообще не можете найти группировку. Тогда почему бы не добавить столбец, в котором указан только месяц, и сгруппировать по нему?
StampedeXV

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

Вы можете добавить столбец, а затем скрыть его, чтобы он был невидимым. Тем не менее вы можете использовать его в сводном отчете.
StampedeXV

Отличная идея. Я попробовал, но Сайф, похоже, не в состоянии игнорировать скрытые столбцы. Мне просто нужно будет сохранить 2 дубликата листа с исходными данными, чтобы обойти это ...
Богдан

30

Google Sheets теперь поддерживает это как «Создать группу дат сводки»

После того, как вы добавили столбец даты / времени в строку:

  1. Щелкните правой кнопкой мыши одно из значений в сводной таблице,
  2. Выберите «Создать группу дат сводки»
  3. Выберите желаемую группу (например, «Месяц» или «Год-месяц»)

Перед + Визуальный пример:

Сводная таблица перед группировкой

После:

введите описание изображения здесь

Больше информации


это должен быть правильный ответ, вероятно,
Senseiwu

Это лучший ответ до 2018 года
Calvin

Могу ли я как-нибудь использовать свои собственные формулы с таблицами Pivot? Я хочу получить квантили
Юбер Гжесковяк

3
Я не вижу эту опцию в моей колонке с датой
Ян Хайзи

5

Без вспомогательного столбца:

=query(A:E,"select sum(B), sum(C), sum(D), sum (E) group by month(A) offset 1")  

при условии, dayчто в A1.

Документация , которая намного лучше описывает, как работает выше, чем когда-либо.


1
Это звучит действительно полезно. Не могли бы вы объяснить, как это работает? Я никогда не использовал функцию Query.
Шон В. Уилсон

Можно ли группировать по месяцам и годам?
Юбер Гжесковяк

@HubertGrzeskowiak Да, это так
Ли Тейлор

4

Так что для тех, кто задавал такой же вопрос, как и я, в Google Sheet пока нет функции группового поля для Pivot (как в Excel). Следовательно, самый простой способ - добавить еще один столбец, преобразующий даты в нужные вам группы, например, недели, месяцы, годы ... Надеемся, что эта функциональность скоро появится и в листе Google.


2

Более простой способ, который я нашел, - преобразовать ячейку даты в текст в новом столбце.

=Text(A1, "mmm-yy")

Затем вы можете поворачиваться, и он будет группироваться по месяцам.


1

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

Вот мой обходной путь.

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

В моем случае: дата в B, =month(B2)дает месяц. Так что мне нужна была дополнительная колонка с =month(B2).

Форма-лист не допускает формул. А на листе с формой вы не можете добавить столбец с формулами (точнее: вы можете, но новая запись формы удаляет формулу в соответствующей строке).

Вторые листы

Простой второй лист с =page1!A1etc и добавлением столбца month имеет ту же проблему. Новая запись в форме => добавляет строку.

Решение

Итак, я сделал следующее.

  • Добавлен дополнительный лист
  • Используется =importrange("longkeynumber";"sheet form!A1:E1000")на A1
  • (importrange - импортировать другой документ, но эй ... он работает)
  • В F используется =if(B3>0;(MONTH(B3));"")
  • При добавлении дополнительных данных в лист A формулы в листе B с помощью importrange остаются.
  • Теперь вы можете добавить сводную таблицу с F (в данном случае) в качестве строки или столбца.

В user165410 игрового ответа , он говорит: - В F, используется =if(B3>0;(MONTH(B3));"")Это хорошее решение, но это можно сделать еще проще: - в F3, =arrayformula(if(b3:b>0;(month(b3:b));""))что это делает, автоматически помещаются в месяце для каждой непустой ячейки в диапазоне В3: B. Вставка или удаление строки, или перемещение строки НЕ испортит формулы!
Стефан ван Алст

Когда новые ответы добавляются в электронную таблицу, вставляется новая строка. Вместо них можно использовать формулы массива (результат с несколькими значениями) или скалярные формулы (результаты с одним значением). С другой стороны, когда исходные данные поступают из одного и того же файла, вы можете использовать формулы массива для возврата того же результата, что и IMPORTRANGE, и они сразу же обновляются
Рубен

Я люблю это решение! в F3 = массив формул (если (b3: b> 0; (month (b3: b)); "")) Единственная проблема заключается в том, что данные хранятся более одного года и каждый месяц объединяется с одним и тем же месяцем в предыдущий год.
Вик М

1

Если вы уже добавляете новый столбец, вы также можете просто использовать eomonth("reference cell",0). Это всегда будет захватывать последний день месяца. Или eomonth("reference cell",-1)+1чтобы получить начало месяца.

Прелесть этого подхода вместо преобразования в текст заключается в том, что при повороте данных. Он будет автоматически сортировать по возрастанию слева направо.


1

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


  • Вокруг каждого дня месяца до первого дня месяца.

= A2 - день (A2) + 1, где A2 - стандартная дата

  • Установите форматирование на пользовательский и выберите месяц / год. Это потребует от вас удалить настройки дня. Таким образом, будет отображаться месяц / год, когда фактическим значением будет первый день месяца, месяц, год.
  • Сводная таблица теперь будет группировать все похожие элементы и отображать форматирование из столбца с месяцем / годом.

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

Формула для даты и форматирования

Пользовательский формат даты

Результаты сводной таблицы

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.