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


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

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

Sample Spreadsheet

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

Me gustaría poder obtener 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!


129


origen




Respuestas:


La característica que desea usar es Tablas dinamicas. Es muy fácil hacer exactamente lo que desea con solo unos pocos clics una vez que aprenda a usar esa función.


80



¡Esto es muy fácil! - Rosdi
Esto no responde la pregunta - Iron Savior
Hay algunas instrucciones básicas en esta respuesta stackoverflow.com/a/15838994/74585 - Matthew Lock


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

  1. Haga clic en la pestaña Datos en la barra de herramientas de cinta de Excel
  2. Haz clic en el botón Ordenar y ordena por tu categoría columna
  3. Haga clic en el botón Subtotal y complete el 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 los bienes vendidos


52



¿Dónde está el botón subtotal? ¿Podría agregar una captura de pantalla? - Matthew Lock
@MatthewLock see addintools.com/documents/excel/where-is-subtotal-button.html (y i.imgur.com/kkSa2AB.png) Tenga en cuenta que el botón es deshabilitado al usar tablas. - matt wilkie


Supongo que está buscando el total de COGS para una cuenta como, por ejemplo, la tienda de comestibles para la semana 1.

sumif es la forma más fácil de generar 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. Debería seleccionar toda la columna D donde tiene datos de cuenta. D2 hasta D ?, lo mismo con la columna de uso semanal J2 hasta J ?.

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


12



Esta es una gran y súper fácil solución. Las tablas pivote son excesivas para muchas necesidades como esta. - T. Brian Jones


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

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

Clasificación

  • Haga clic en el Datos pestaña (o presione Alt-A en el teclado)
  • Hacer clic 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 quiere agrupar.
  • ¡Haga clic en Aceptar!

Total parcial

  • Haga clic en el Datos pestaña (o presione Alt-A en el teclado)
  • Hacer clic Total parcial ícono (o presione B en el teclado)
  • Ahora que tus datos están ordenados, leídos y llene 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)
           Use la función
              Suma (Haga clic en la flecha desplegable y seleccione esto)
           Agregar subtotal a
              Costo del bien vendido (Seleccione las columnas que desea totalizar para categorías individuales)
  •    Click OK!
    


    5





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

    1. Seleccione su mesa
    2. Ve a la pestaña de Datos.
    3. Haga clic en Estructura> Agrupación.

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

    Gliederung > Gruppieren


    4





    Hago esto todo el tiempo con vba. Estoy bastante seguro de haber usado el mismo método desde la oficina 95 ', con cambios menores 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 que pasar por muchas líneas o más cosas con las que necesita definir su grupo.

    Me encontré con situaciones en las que un 'grupo' se basa en 2-5 células. Este ejemplo solo mira una columna, pero se puede expandir 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
    '(cosas van aquí)
    'galleta 1 vacía
    'cookie 3 vacía
    'torta 4 vacía
    'sombrero 0 vacío
    'sombrero 3 vacío
    '...
    'detener
    
    Subtotal ()
      'define dos cadenas y un contador de subtotal
      Dim thisOne, thatOne As String
      Dim subCount como doble
    
      'sembrar los valores
      thisOne = ActiveCell.Value
      thatOne = ActiveCell.Offset (1, 0)
      subCount = 0
    
      'configura un ciclo que irá hasta que llegue a un valor de detención
      Mientras (ActiveCell.Value <> "stop")
    
        'compara un valor de celda con la celda debajo de él.
        If (thisOne = thatOne) Then
          'si las celdas son iguales, el conteo de líneas se agrega al subcuento
          subCount = subCount + ActiveCell.Offset (0, 1) .Value
    
        Más
          'si las celdas no son iguales, se escribe el subcuento y se restablece el subtotal.
          ActiveCell.Offset (0, 2) .Value = ActiveCell.Offset (0, 1) .Value + subCount
          subCount = 0
    
        Terminara si
    
        'seleccione la siguiente celda abajo
        ActiveCell.Offset (1, 0) .Seleccione
    
        'asignar los valores de la celda activa y el que está debajo de ella a las variables
        thisOne = ActiveCell.Value
        thatOne = ActiveCell.Offset (1, 0)
      Encaminarse a
    
    End Sub
    

    1





    Para hacer esto con un tabla dinámica:

    1) Seleccione todos los datos (incluidas las etiquetas de columna)
    2) Insertar> Tabla dinámica
    3) Arrastre la dimensión para agrupar en el área de columnas o filas
    4) Arrastra la métrica para sumar en el área de valores

    enter image description here


    0