Cómo agrupar datos por mes en Hojas de cálculo de Google

38

Tengo una hoja de Google que contiene varias métricas para cada día. Cada día tiene su propia fila:

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

Quiero girar la mesa y resumir el cost, impressions, clicksy conversioncolumnas por mes (no por día) así:

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

En Excel, acabo de usar la Group byfunción, pero veo que no está disponible en Google Sheets.

Bogdan
fuente
2
La respuesta correcta a partir de 2018 es esta: webapps.stackexchange.com/a/120852
Kos

Respuestas:

18

Usando las Data->Pivot table report...ofertas exactamente lo que está pidiendo. Es posible que tenga que usar las " Nuevas Hojas de cálculo de Google ".
Lo uso como configuración predeterminada y fue fácil lograr lo que quería, similar a Excel.

Aquí, en mi respuesta, explico cómo habilitar las nuevas hojas de cálculo.


Parece que no entendí completamente el problema.

Primero necesitamos tener el mes. Para eso agregue una nueva columna para extraer la fecha usando =MONTH(DATE_COLUMN).

ingrese la descripción de la imagen aquí

Luego cree un informe Pivot:

ingrese la descripción de la imagen aquí

StampedeXV
fuente
probé las 'nuevas hojas de google' y no hay opción para agrupar las fechas por mes en los informes de la tabla dinámica, ¿tal vez podría arrojar algo de luz?
Bogdan
Lo siento, pensé que el problema principal era que no podías encontrar agrupación en absoluto. Entonces, ¿por qué no agregar una columna que proporciona solo el mes y agruparlo?
StampedeXV
Desafortunadamente, no puedo agregar en otra columna, o cambiar el formato de la hoja de origen, ya que se está utilizando para alimentar un tablero en Cyfe, pero gracias por sus respuestas ...
Bogdan
Puede agregar la columna y luego ocultarla para que sea invisible. Aún así puede usarlo en el informe Pivot.
StampedeXV
Excelente idea. Lo intenté, sin embargo, Cyfe no parece ser capaz de ignorar las columnas ocultas. Voy a tener que mantener 2 hojas duplicadas con los datos de origen para solucionar esto ...
Bogdan
30

Google Sheets ahora admite esto como 'Crear grupo de fechas dinámicas'

Una vez que haya agregado su columna de fecha / hora como una fila:

  1. Haga clic derecho en uno de los valores en la tabla dinámica,
  2. Elija 'Crear grupo de fechas dinámicas'
  3. Elija la agrupación deseada (por ejemplo, 'Mes' o 'Año-Mes')

Antes + Ejemplo visual:

Tabla dinámica antes de agrupar

Después:

ingrese la descripción de la imagen aquí

Más información

MotohawkSF
fuente
esta debería ser la respuesta correcta probablemente
senseiwu
Esta es la mejor respuesta con respecto a 2018
Calvin,
¿Puedo usar mis propias fórmulas con tablas dinámicas de alguna manera? Quiero obtener cuantiles
Hubert Grzeskowiak
3
No veo esta opción en mi columna de fecha
Ian Hyzy
5

Sin una columna auxiliar:

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

suponiendo que dayestá en A1.

Documentación que hace un trabajo mucho mejor para describir cómo funciona lo anterior que nunca.

nueces
fuente
1
Esto suena realmente útil. ¿Podrías explicar cómo funciona? Nunca he usado la función de consulta.
Shawn V. Wilson
¿Es posible agrupar por mes y año?
Hubert Grzeskowiak
@HubertGrzeskowiak Sí, lo es
Lee Taylor
4

Entonces, para aquellos que hicieron una pregunta similar a la mía, aparentemente todavía no hay una función de campo de grupo para Pivot en Google Sheet (como lo hay en Excel). Por lo tanto, la forma más simple es agregar otra columna transformando sus fechas a los grupos que necesita, por ejemplo, semanas, meses, años ... Esperemos que la funcionalidad esté pronto en la hoja de Google también.

F Samie
fuente
2

Una forma más fácil que encontré fue convertir la celda de fecha a texto en una nueva columna.

=Text(A1, "mmm-yy")

Luego puede pivotar y se agrupará por mes.

Pedropagina
fuente
1

Ninguna de las respuestas anteriores funcionó para mí, porque uso un formulario como entrada. No puede agregar fórmulas en la hoja de formulario.

Aquí está mi solución.

Al leer lo anterior, la tabla dinámica necesita una columna con mes para seleccionar. Puede usar un criterio diferente, como semana o viernes. O John, Doe, Foo o bar. Lo que quieras 'agrupar'.

En mi caso: la fecha está en B, =month(B2)da el mes. Entonces necesitaba una columna extra con =month(B2).

La hoja de formulario no permite fórmulas. Y en una hoja con un formulario, no puede agregar una columna con fórmulas (exactamente: puede, pero una nueva entrada de formulario elimina la fórmula en la línea correspondiente).

Segundas hojas

Una segunda hoja simple con =page1!A1etc. y agregar el mes de la columna tiene el mismo problema. Una nueva entrada en el formulario => agrega una fila.

Solución

Entonces hice lo siguiente.

  • Se agregó una hoja extra
  • Utilizado =importrange("longkeynumber";"sheet form!A1:E1000")en A1
  • (importrange es importar un documento diferente, pero bueno ... funciona)
  • En F, usado =if(B3>0;(MONTH(B3));"")
  • Al agregar datos adicionales en la hoja A, las fórmulas en la hoja B con el rango de importación permanecen.
  • Ahora puede agregar una tabla dinámica, con (en este caso) F como una fila o columna.
usuario165410
fuente
En la respuesta del usuario 165410 , afirma: - En F, utilizado =if(B3>0;(MONTH(B3));"")Esta es una buena solución, pero se puede hacer aún más fácil: - en F3, =arrayformula(if(b3:b>0;(month(b3:b));""))lo que esto hace, automáticamente coloca el mes para cada celda no vacía en el rango B3: SI. ¡Insertar o eliminar una fila, o mover una fila NO arruinará las fórmulas!
Stefan van Aalst
Cuando se agregan nuevas respuestas a una hoja de cálculo, se inserta una nueva fila. Las fórmulas de matriz (resultado de valores múltiples) podrían usarse en su lugar o fórmulas escalares (resultados de valores únicos). Por otro lado, cuando los datos de origen provienen del mismo archivo, podría usar fórmulas de matriz para devolver el mismo resultado que IMPORTRANGE y se actualizaron inmediatamente
Rubén el
¡Amo esta solución! en F3, = arrayformula (if (b3: b> 0; (month (b3: b)); "")) El único problema es cuando los datos son de más de un año y cada mes se combina con el mismo mes en el año anterior
Vic M
1

Si ya está agregando una nueva columna, también puede usarla eomonth("reference cell",0). Eso siempre atrapará el último día del mes. O eomonth("reference cell",-1)+1para comenzar el mes.

Lo bueno de este enfoque en lugar de convertirlo en texto es que cuando pivotas los datos. Se ordenará automáticamente de izquierda a derecha.

Skho
fuente
1

Encontré una forma que me gusta más. Simplemente creé una columna oculta con los siguientes pasos:


  • Redondea todos los días del mes al primer día del mes.

= A2 - día (A2) + 1 donde A2 es la fecha estándar

  • Establezca el formato en personalizado y elija mes / año. Esto requerirá que elimine la configuración del día. Por lo tanto, mostrará mes / año cuando el valor real será el primer día del mes, mes, año.
  • La tabla dinámica ahora agrupará todos los elementos similares y mostrará el formato de la columna con mes / año.

De esta manera obtendrá valores únicos a medida que pasan los años. Yo mismo decidí ocultar la columna en cuestión porque tengo un Doc conectado a esta Hoja que extrae las dos primeras filas a medida que las agrego.

Fórmula para fecha y formato

Formato de fecha personalizado

Resultados de tabla dinámica

Nick Mean
fuente