1 votes

Agrégation de colonnes dans Excel

J'ai des données composées d'une date et d'une liste d'achats, quelque chose comme ceci (les virgules représentent des colonnes séparées) :

**date,produit1,produit2,produit3** 
08/11/13,oranges,pommes,chips
08/11/13,raisins,oranges
08/12/13,raisins,ananas
08/12/13,raisins,oranges

Je veux savoir combien d'articles de chaque produit ont été achetés pour chaque date (et le représenter graphiquement).

Si j'avais une seule colonne de produits, ce serait assez simple ; je pourrais simplement utiliser un tableau croisé dynamique. Cependant, dans mon cas, pour le 11 août, j'ai besoin d'un moyen de compter les "oranges" de produit1 avec les "oranges" de produit2...

Une solution consisterait à dupliquer les lignes et à traduire les données dans une seule colonne, mais j'aimerais l'éviter.

Existe-t-il un moyen de le faire, de préférence sans utiliser de VBA ?

0voto

chuff Points 3434

Si vos données se trouvent dans la plage A2:D25, vous pouvez utiliser la formule de matrice suivante :

=SUM(($A$2:$A$25=DATEVALUE("8/11/13"))*
    (($B$2:$B$25="oranges")+($C$2:$C$25="oranges")+($D$2:$D$25="oranges")))

Vous devrez l'entrer avec la combinaison de touches Control-Shift-Enter.

Si vous avez plusieurs dates pour lesquelles vous voulez calculer les totaux pour un grand nombre de produits, vous pouvez faire ce qui suit.

Supposons que vos données de produits se trouvent dans la plage A2:D20000 dans la Feuille 1, avec la plage de dates dans la colonne A, comme dans votre exemple. Disons que vous voulez mettre les décomptes des produits dans la Feuille2.

Dans la Feuille2, vous entreriez dans les cellules B1, C1, etc., les dates qui vous intéressent. En dessous, dans la plage A2:A2000, vous avez la liste de vos produits. Dans la cellule B2, entrez cette formule de matrice :

=SUM((Sheet1!$A$2:$A$20000=B$1)*((Sheet1!$B$2:$B$20000=$A2)+
     (Sheet1!$C$2:$C$20000=$A2)+(Sheet1!$D$2:$D$20000=$A2)))

et copiez-la jusqu'en bas de la liste des produits. Cela vous donne les décomptes pour la première date.

Ensuite, copiez toute cette colonne de décomptes de produits pour chaque colonne contenant une date dans la ligne 1. Cela vous donne les décomptes pour toutes les dates.

Alternativement, si vous avez à la fois un grand nombre de produits et un grand nombre de dates, une formule non-matrice légèrement plus compliquée vous donnera de meilleures performances (c'est-à-dire, prendra moins de temps à calculer).

Dans la cellule B2, vous entreriez plutôt :

     =COUNTIFS(Sheet1!$A$2:$A$20000,B$1,Sheet1!$B$2:$B$20000,$A2)+
      COUNTIFS(Sheet1!$A$2:$A$20000,B$1,Sheet1!$C$2:$C$20000,$A2)+
      COUNTIFS(Sheet1!$A$2:$A$20000,B$1,Sheet1!$D$2:$D$20000,$A2)

Ensuite, vous copieriez la formule jusqu'en bas de la liste des produits, puis copieriez toute cette colonne de formules (dans la plage B2:B2000) à travers toutes les colonnes pour lesquelles vous avez ajouté des dates dans la ligne 1.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X