Comment créer un tableau croisé dynamique à l'aide de catégories?

0

J'ai ces données dans Excel et je souhaite trouver la somme de chaque catégorie. Je souhaite que cette somme change automatiquement tout en ajoutant d'autres valeurs. Des idées sur la façon de faire cela si possible? enter image description here

ultra99
la source
Vous avez deux options ici: 1. utiliser un tableau croisé dynamique, il est facile à configurer, mais il ne calculera pas automatiquement, vous devez l'actualiser manuellement après avoir changé les valeurs (ou utiliser une macro pour cela) 2. utilisez la formule ( SUMIF), il calcule automatiquement, mais il ne fonctionne que si vous avez une liste constante de catégories (items)
Máté Juhász

Réponses:

3

Quelle que soit la méthode que vous utilisiez pour résumer, vous allez vouloir utiliser soit un plage nommée dynamique ou (dans Excel 2007 ou version ultérieure) un tableau de données . L’un ou l’autre étendra votre plage de données à mesure que vous insérez de nouvelles valeurs.

Tableau de données

Pour un tableau de données, il vous suffit de sélectionner une cellule dans votre plage de données, puis d'aller à l'onglet Accueil | Format en tant que tableau et sélectionnez l'un des formats disponibles.

Insert Data Table

Excel tentera de déterminer automatiquement votre plage de données - en supposant que vos données sont présentées comme dans votre exemple, sans lignes ou colonnes vides et en-têtes en haut, il devrait pouvoir obtenir la plage automatiquement. Sinon, vous pouvez le sélectionner ici.

Define Data Range

Cliquez sur OK pour créer votre table de données.

Un tableau de données vous donne un certain nombre de fonctionnalités intéressantes:

  • Le meilleur, pour nos besoins, consiste à créer une plage nommée, par défaut appelée Table1, qui se développe automatiquement si de nouvelles données sont ajoutées dans la ligne située juste en dessous ou dans la colonne à côté.

  • Le deuxième meilleur choix, pour notre propos, est que vous pouvez utiliser cette plage nommée dans des formules. Dans votre exemple, en supposant que les en-têtes "Gaz" et "Épicerie" figurent dans la colonne D, nous pouvons insérer la formule suivante dans la colonne E: =SUMIF(Table1[Item],D4,Table1[Value]) Cette formule va regarder la table de données, Table1et regardez le Item colonne pour toutes les valeurs qui correspondent à la valeur D4. Ensuite, il va résumer les valeurs respectives de la Value colonne.

Vous pouvez également utiliser Table1 comme source pour un tableau croisé dynamique, mais celui-ci ne se mettra pas à jour automatiquement lorsque de nouvelles données sont ajoutées à la table de données. vous devez accéder au pivot, cliquer dessus avec le bouton droit de la souris et choisir "Actualiser".

Gamme nommée dynamique

Pour être clair, je recommande l'option Table de données. C'est plus propre, plus facile, et il y a moins de place pour que les choses tournent terriblement mal! Toutefois, si vous préférez, nous pouvons examiner une plage nommée dynamique. Cela serait nécessaire dans les anciennes versions d'Excel, et dans certaines situations, vous pourriez le préférer.

Nous allons en fait créer deux plages nommées, en utilisant une formule très similaire pour chacune. Dans Excel 2007 et versions ultérieures, accédez à l'onglet Formules et sélectionnez Gestionnaire de noms:

Name Manager

Dans la fenêtre du gestionnaire de noms, cliquez sur Nouveau pour accéder à la zone Nouveau nom. Nous allons avoir besoin de deux éléments essentiels ici - un nom et formule fait référence. Le nom ne peut pas avoir d'espaces; dans notre cas, nous voudrons probablement utiliser Item:

New Name

Dans la zone Fait référence à, nous allons mettre une formule. Notez que lorsque vous tapez ceci, les touches fléchées commenceront à sélectionner des cellules sur la feuille de calcul, à moins que vous n'appuyiez sur F2 en premier. Entrez les informations suivantes: =OFFSET(Sheet1!$A$2,0,0,COUNTA(SHEET1!$A:$A)-1,1)

le OFFSET fonction utilisée pour renvoyer une plage de cellules, à partir d'une cellule de référence - dans ce cas Sheet1!A2 - puis en descendant d'un certain nombre de lignes et en travers d'un certain nombre de colonnes. Nous utilisons 0,0 pour ça. Il renvoie ensuite une plage d'une certaine hauteur et d'une certaine largeur. Nous utilisons le COUNTA(A:A) compter combien de cellules dans la colonne A ont des valeurs de n'importe quel type pour obtenir cette hauteur, puis soustraire 1 pour tenir compte du fait que nos données commencent à la ligne 2 et renvoyer une plage de 1 colonne

Créez une deuxième plage nommée, identique à la première mais avec le nom "Valeur" et la formule faisant référence à la colonne B: =OFFSET(Sheet1!$B$2,0,0,COUNTA(SHEET1!$B:$B)-1,1)

Nous pouvons maintenant utiliser ces plages nommées comme sources d’une formule similaire à celle utilisée dans le Tableau de données méthode: =SUMIF(Item,D4,Value)

Vous pouvez également utiliser des plages nommées dynamiques pour alimenter un tableau croisé dynamique, mais dans ce cas, vous souhaitez modifier la ,1) à ,1), pour renvoyer l’ensemble des données.

Il suffit d'utiliser la colonne entière

Toutes ces méthodes sont plutôt impliquées, mais évitent d’essayer d’utiliser trop de ressources pour atteindre le but recherché. Si cela ne vous préoccupe pas, vous pouvez toujours utiliser l'option simple: Référencez la colonne entière dans vos formules.

Mettez une formule comme celle-ci dans vos cellules de totaux: =SUMIF($A:$A,D4,$B:$B) Cela inclut toutes les lignes des colonnes A et B. Cela fonctionnera, mais avec moins de panache que les autres options.

Werrf
la source