Comment puis-je “grouper par” et additionner une colonne dans Excel?

144

J'essaie de comprendre comment "grouper par" les valeurs dans une feuille de calcul Excel.

À partir de l'exemple suivant (c'est une feuille d'inventaire que j'utilise dans mon restaurant :)

Exemple de feuille de calcul

À l'extrême droite de la feuille de calcul, vous trouverez une colonne intitulée Coût des produits vendus.

Je voudrais pouvoir établir un chiffre total de COGS pour chaque catégorie.

Est-ce possible dans Excel? De plus, j'aimerais le faire dans une feuille de calcul séparée afin que la première feuille de travail (ce qui est illustré) ne soit pas affectée.

Des idées?

Merci!

Ian P
la source

Réponses:

89

La fonctionnalité que vous souhaitez utiliser est les tableaux croisés dynamiques . Il est très facile de faire exactement ce que vous voulez en quelques clics une fois que vous avez appris à utiliser cette fonctionnalité.

Scott Obert
la source
50
Cela ne répond pas à la question
Iron Savior
1
Il y a quelques instructions de base dans cette réponse stackoverflow.com/a/15838994/74585
Matthew Lock
1
Continuez à faire défiler les réponses pour une réponse claire et concise: superuser.com/a/1204086/164123
Jordan Morris
58

Vous pouvez également le faire avec la fonctionnalité Sous-total.

  1. Cliquez sur l'onglet Données dans la barre d'outils du ruban d'Excel.
  2. Cliquez sur le bouton Trier et triez par colonne de catégorie.
  3. Cliquez sur le bouton Sous-total et remplissez la boîte de dialogue comme il convient, puis cliquez sur OK.

Par exemple...

A chaque changement de: catégorie

Utilisez la fonction: Somme

Ajouter un sous-total à: Coût des biens vendus

Rob
la source
3
Où se trouve le bouton de sous-total? Pourriez-vous ajouter une capture d'écran?
Matthew Lock
15

Je suppose que vous recherchez le total des stocks pour un compte comme une épicerie, par exemple, pour la semaine 1.

sumifest le moyen le plus simple de rassembler ces données. exemple pris de votre photo:

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

J'ai placé les points d'interrogation car je ne peux pas voir la feuille entière. Vous sélectionneriez toute la colonne D où vous avez les données du compte. D2 à D?, Idem avec la colonne d'utilisation hebdomadaire J2 à J ?.

La formule recherchera l'épicerie texte dans la colonne D; si elle est présente, elle ajoutera les cellules de la colonne J qui correspondent aux colonnes D contenant le mot épicerie. (ou quel que soit le texte que vous avez mis dans la formule à rechercher)

JLewis
la source
C'est une solution géniale et super facile. Les tableaux croisés dynamiques sont excessifs pour de nombreux besoins comme celui-ci.
T. Brian Jones
5

L'approche la plus simple peut être une opération de tri Excel suivie d'une opération de sous-total Excel.

Il produit ce que vous recherchez sans modifier la présentation de vos données comme le ferait un système pivot.

Tri

  • Cliquez sur l' onglet Données (ou appuyez sur Alt-A sur le clavier).
  • Cliquez sur Trier (ou appuyez sur S sur le clavier)
  • Cliquez sur la flèche déroulante en regard de "Trier par" dans la zone principale de la fenêtre contextuelle.
  • Sélectionnez "Catégorie" car c'est ce que vous voulez regrouper.
  • Cliquez sur OK!

Total

  • Cliquez sur l' onglet Données (ou appuyez sur Alt-A sur le clavier).
  • Cliquez sur l' icône Sous-total (ou appuyez sur B sur le clavier).
  • Maintenant que vos données sont triées, lisez et remplissez la fenêtre contextuelle Sous-total comme si vous lisiez en anglais naturel :
           A chaque changement de
              Catégorie (Cliquez sur la flèche de la liste déroulante et sélectionnez cette option)
           Utilisez la fonction
              Somme (Cliquez sur la flèche de la liste déroulante et sélectionnez ceci)
           Ajouter un sous-total à
              Coût du bien vendu (sélectionnez les colonnes que vous souhaitez totaliser pour les catégories individuelles)

       Click OK!
    

  • Bharat Patel
    la source
    4

    Dans Excel 2013, il y aura une option de "regroupement".

    1. Sélectionnez votre table.
    2. Allez à l'onglet Données.
    3. Cliquez sur Structure> Grouping.

    Voir la capture d'écran ci-dessous, malheureusement, c'est l'allemand - mais les icônes vous aideront à le trouver.

    Gliederung> Gruppieren

    Waqar Lim
    la source
    4

    Pour ce faire avec un tableau croisé dynamique :

    1. Sélectionnez toutes les données (y compris les étiquettes de colonne)
    2. Insérer> Tableau croisé dynamique
    3. Faites glisser un champ dans une dimension (ligne ou colonne) du tableau croisé dynamique pour le regrouper.
    4. Faites glisser un champ dans la zone "Valeurs" pour calculer une métrique à ce sujet. dans ce cas, Sum.

    entrez la description de l'image ici

    AlexG
    la source
    Cela devrait être la réponse acceptée
    Jordan Morris
    1
    Excel v.16.28 a Data/ Summarize with PivotTableplutôt que "Insérer".
    anguille ghEEz
    1

    Je fais ça tout le temps avec vba. Je suis presque sûr d'avoir utilisé la même méthode depuis office 95 ', avec des modifications mineures pour le placement des colonnes. Cela peut être fait avec moins de lignes si vous ne définissez pas les variables. Cela peut être fait plus rapidement si vous avez beaucoup de lignes à parcourir ou plus de choses avec lesquelles vous devez définir votre groupe.

    J'ai rencontré des situations où un «groupe» est basé sur 2 à 5 cellules. Cet exemple ne concerne qu'une colonne, mais il peut être facilement développé si quelqu'un prend le temps de la jouer.

    Cela suppose 3 colonnes et vous devez trier par la colonne group_values. Avant d'exécuter la macro, sélectionnez la première cellule que vous souhaitez comparer dans la colonne group_values.

    'valeurs_groupe, nombre_quelques, empty_columnToHoldSubtotals
    '(les choses vont ici)
    'cookie 1 vide
    'cookie 3 vide
    'cake 4 vide
    'hat 0 vide
    'chapeau 3 vide
    '...
    'Arrêtez
    
    Sous-total ()
      'définir deux chaînes et un compteur de sous-total
      Dim thisOne, thatOne As String
      Dim SubCount As Double
    
      'semer les valeurs
      thisOne = ActiveCell.Value
      thatOne = ActiveCell.Offset (1, 0)
      sous-compte = 0
    
      'configure une boucle qui ira jusqu'à atteindre une valeur d'arrêt
      While (ActiveCell.Value <> "stop")
    
        'compare une valeur de cellule à la cellule située en dessous.
        Si (thisOne = thatOne) Alors
          'si les cellules sont égales, le nombre de lignes est ajouté au sous-compte
          subCount = subCount + ActiveCell.Offset (0, 1) .Value
    
        Autre
          Si les cellules ne sont pas égales, le sous-compte est écrit et le sous-total est réinitialisé.
          ActiveCell.Offset (0, 2) .Value = ActiveCell.Offset (0, 1) .Value + subCount
          sous-compte = 0
    
        Fin si
    
        'sélectionnez la cellule suivante vers le bas
        ActiveCell.Offset (1, 0) .Sélectionnez
    
        'assigne les valeurs de la cellule active et de celle en dessous aux variables
        thisOne = ActiveCell.Value
        thatOne = ActiveCell.Offset (1, 0)
      Wend
    
    End Sub
    
    dp_here
    la source
    -2

    1) Sélectionnez une plage de données.
    2) Copier la plage dans le presse-papier.
    3) Ouvrez la nouvelle base de données Access.
    4) Concevez une nouvelle table ou gamme de pâte.
    5) Créer une vue, une vue SQL.
    6) Créer une requête "Cellule SELECT, SOMME (données) AS Total de la table GROUP BY cellule".

    utilisateur324532
    la source
    -3

    Dans Excel 2013:

    -Cliquez sur les données

    -Cliquez sur le sous-total

    boomhauer
    la source