¿Cómo puedo "agrupar por" y sumar una columna en Excel?

144

Estoy tratando de descubrir cómo "agrupar por" valores en una hoja de cálculo de Excel.

Dado el siguiente ejemplo (esta es una hoja de inventario que uso en mi restaurante :)

Hoja de cálculo de muestra

En el extremo derecho de la hoja de cálculo hay una columna llamada Costo de bienes vendidos.

Me gustaría poder llegar a una cifra total de COGS para cada categoría.

¿Es esto posible en Excel? Además, me gustaría hacerlo en una hoja de trabajo separada para que la primera hoja de trabajo (lo que se muestra) no se vea afectada.

¿Algunas ideas?

¡Gracias!

Ian P
fuente

Respuestas:

89

La característica que desea usar es Tablas dinámicas . Es realmente fácil hacer exactamente lo que quiere con solo unos pocos clics una vez que aprende a usar esa función.

Scott Obert
fuente
50
Esto no responde la pregunta
Iron Savior
1
Hay algunas instrucciones básicas en esta respuesta stackoverflow.com/a/15838994/74585
Matthew Lock
1
Sigue buscando una respuesta clara y concisa: superuser.com/a/1204086/164123
Jordan Morris
58

También puede hacer esto con la función Subtotal.

  1. Haga clic en la pestaña Datos en la barra de herramientas de la cinta de Excel
  2. Haga clic en el botón Ordenar y ordene por su columna de categoría
  3. Haga clic en el botón Subtotal y complete el cuadro de diálogo según corresponda, luego haga clic en Aceptar

Por ejemplo...

En cada cambio en: Categoría

Función de uso: suma

Agregar subtotal a: Costo de bienes vendidos

robar
fuente
3
¿Dónde está el botón subtotal? ¿Podría agregar una captura de pantalla?
Matthew Lock
3
@MatthewLock ver addintools.com/documents/excel/where-is-subtotal-button.html (y i.imgur.com/kkSa2AB.png ). Tenga en cuenta que el botón está deshabilitado cuando se usan tablas .
Matt Wilkie
15

Supongo que está buscando los COGS totales para una cuenta como supermercado, por ejemplo, para la semana 1.

sumifes la forma más fácil de obtener esos datos. ejemplo tomado de tu foto:

=sumif(d2:d?,"grocery",j2:j?)

He colocado los signos de interrogación ya que no puedo ver toda la hoja. Seleccionaría la columna D completa donde tiene los datos de la cuenta. D2 a D ?, lo mismo con la columna de uso semanal J2 a J ?.

La fórmula buscará en la columna D la tienda de comestibles de texto; si está presente, agregará las celdas de la columna J que corresponden a las columnas D que tienen la palabra tienda de comestibles. (o cualquier texto que ponga en la fórmula para que lo busque)

JLewis
fuente
Esta es una solución excelente y súper fácil. Las tablas dinámicas son excesivas para muchas necesidades como esta.
T. Brian Jones
5

El enfoque más trivial puede ser una operación de clasificación de Excel seguida de una operación de subtotal de Excel.

Produce lo que busca sin cambiar todo el diseño de sus datos como lo haría la operación Pivot.

Clasificación

  • Haga clic en la pestaña Datos (o presione Alt-A en el teclado)
  • Haga clic en Ordenar (o presione S en el teclado)
  • Haga clic en la flecha desplegable junto a "Ordenar por" en el área principal de la ventana emergente.
  • Seleccione "Categoría" ya que esto es lo que desea agrupar.
  • ¡Haga clic en Aceptar!

Total parcial

  • Haga clic en la pestaña Datos (o presione Alt-A en el teclado)
  • Haga clic en el icono Subtotal (o presione B en el teclado)
  • Ahora que sus datos están ordenados, lea y complete la ventana emergente Subtotal como si estuviera leyendo inglés natural :
           En cada cambio en
              Categoría (haga clic en la flecha desplegable y seleccione esto)
           Utilizar la función
              Suma (haga clic en la flecha desplegable y seleccione esto)
           Añadir subtotal a
              Costo del bien vendido (Seleccione las columnas que desea sumar para categorías individuales)

       Click OK!
    

  • Bharat Patel
    fuente
    4

    En Excel 2013 habrá una opción de "agrupamiento".

    1. Selecciona tu mesa.
    2. Vaya a la pestaña Datos.
    3. Haga clic en Estructura> Agrupación.

    Vea la captura de pantalla a continuación, desafortunadamente, es alemán, pero los íconos lo ayudarán a encontrarlo.

    Gliederung> Gruppieren

    Waqar Lim
    fuente
    4

    Para hacer esto con una tabla dinámica :

    1. Seleccione todos los datos (incluidas las etiquetas de columna)
    2. Insertar> Tabla dinámica
    3. Arrastre un campo a una dimensión (fila o columna) de la tabla dinámica para agruparlo
    4. Arrastre un campo al área de "valores" para calcular una métrica al respecto; en este caso, la suma.

    ingrese la descripción de la imagen aquí

    AlexG
    fuente
    Esta debería ser la respuesta aceptada
    Jordan Morris
    1
    Excel v.16.28 tiene Data/ en Summarize with PivotTablelugar de "Insertar".
    anguila ghEEz
    1

    Hago esto todo el tiempo con vba. Estoy bastante seguro de que he usado el mismo método desde Office 95 ', con pequeños cambios realizados para la colocación de la columna. Se puede hacer con menos líneas si no define las variables. Se puede hacer más rápido si tiene muchas líneas por recorrer o más cosas con las que necesita definir su grupo.

    Me he encontrado con situaciones en las que un "grupo" se basa en 2-5 celdas. Este ejemplo solo mira una columna, pero se puede ampliar fácilmente si alguien se toma el tiempo para jugar con ella.

    Esto supone 3 columnas, y debe ordenar por la columna group_values. Antes de ejecutar la macro, seleccione la primera celda que desea comparar en la columna group_values.

    'group_values, some_number, empty_columnToHoldSubtotals
    '(las cosas van aquí)
    'cookie 1 vacía
    'cookie 3 vacía
    'pastel 4 vacío
    'sombrero 0 vacío
    'sombrero 3 vacío
    '...
    'detener
    
    Subtotal ()
      'definir dos cadenas y un contador subtotal
      Dim thisOne, thatOne As String
      Dim subCount As Double
    
      'sembrar los valores
      thisOne = ActiveCell.Value
      thatOne = ActiveCell.Offset (1, 0)
      subCount = 0
    
      'configurar un bucle que irá hasta que alcance un valor de detención
      Mientras (ActiveCell.Value <> "stop")
    
        'compara un valor de celda con la celda debajo de él.
        If (thisOne = thatOne) Entonces
          'si las celdas son iguales, el recuento de líneas se agrega al subcuenta
          subCount = subCount + ActiveCell.Offset (0, 1) .Value
    
        Más
          'si las celdas no son iguales, se escribe el subcuenta y se restablece el subtotal.
          ActiveCell.Offset (0, 2) .Value = ActiveCell.Offset (0, 1) .Value + subCount
          subCount = 0
    
        Terminara si
    
        'seleccione la siguiente celda hacia abajo
        ActiveCell.Offset (1, 0) .Seleccione
    
        'asigna los valores de la celda activa y la que está debajo de ella a las variables
        thisOne = ActiveCell.Value
        thatOne = ActiveCell.Offset (1, 0)
      Encaminarse a
    
    End Sub
    
    dp_here
    fuente
    -2

    1) Seleccionar rango de datos.
    2) Copiar rango al portapapeles.
    3) Abrir nueva base de datos de acceso.
    4) Diseñe una nueva tabla o rango de pegado.
    5) Crear vista, vista SQL.
    6) Cree la consulta "SELECCIONAR celda, SUMA (datos) COMO Total de la tabla GRUPO POR celda".

    user324532
    fuente
    -3

    En Excel 2013:

    -Haga clic en datos

    -Haga clic en Subtotal

    boomhauer
    fuente