Question Excel: résumez une colonne en fonction des conditions


J'ai une feuille Excel avec de telles colonnes:

A    B    C    D
1    1    X    INT
2    1    X    INT
1    2    Y    INT
2    2    Y    INT
3    2    Y    INT
1    3    Z    INT
2    3    Z    INT
3    3    Z    INT
4    3    Z    INT

La colonne D contient des valeurs que je veux résumer. La colonne A compte toujours à partir de 1, en fonction du groupe dans lequel elle se trouve (colonne B) et a des valeurs maximales de 2 (groupe 1), 3 (groupe 2) ou 4 (groupe 3) Disons que le scénario 1 est "Somme de toutes les INT", si C = X et que la valeur maximale est 2. Colum C est juste une condition à remplir. Bien sûr, tout peut être varié.

Il faudra probablement travailler avec = SUMIF (), mais le mieux que je puisse trouver jusqu'à présent est = SUMIF (D: D, C: C, "X")

Mais cela ne fonctionnera pas si un autre groupe a la condition X, mais peut avoir plus de valeurs dans la colonne A.

Mon idée est d'utiliser COUNTIF () et de voir si un groupe a en tout 2, 3 ou 4 valeurs.

Mais comment puis-je rendre cela plus général?

Merci beaucoup!

[MODIFIER:] J'ai aussi pensé à un moyen de vérifier avec AND (), OR () et NOT () si, pour chaque groupe qui a max. 3 comptes (col. A) qu'il y ait 1, 2, 3 mais pas 4, 5, 6, 7, 8, 9, 10, 11, 12.

Le nombre de groupes (C) pourrait être infini (bien que généralement pas plus de 7). Comtes de col. a sont soit 3, 7 ou 12 Comme je l'ai mentionné, il pourrait y avoir un groupe avec la condition X qui a 3 comptes et un autre groupe avec la condition X qui a 7 comptes, et pour les deux scénarios, la colonne D est résumée selon les conditions.

Le problème est que le groupe X a des comptes 1, 2 (avec max. 2) et un autre groupe possible F pourrait aussi avoir la condition X, mais 12 comptes. Cela signifie que les comptes 1 et 2 ne peuvent pas être comptés deux fois.


2
2017-08-11 16:15


origine




Réponses:


Vous voudrez SUMPRODUCT

=SUMPRODUCT(D1:D9,(F2=COUNTIFS(B1:B9,B1:B9))*(C1:C9=F1)

Cela itère les valeurs ligne par ligne, en renvoyant la valeur dans D où C est égal à la contrainte désirée, X dans ce cas, le nombre de B est égal au nombre d'éléments.

enter image description here


1
2017-08-11 17:03



Cela ne fonctionne pas pour moi, même si je pense que votre solution pourrait être celle que je vais utiliser. Cependant, il semble y avoir quelque chose qui ne va pas avec le code. Lorsque je tape cet exemple tel qu'il est, alors j'obtiens également une valeur renvoyée de 30 lorsque F2 = 2. Mais lorsque je tape F2 = 3, la valeur renvoyée est 0? - Khaled
Vous devez également trouver la catégorie pour Y. Vous avez déclaré vouloir les deux contraintes - Scott Craner
@Khaled vous pouvez "accepter" la réponse comme ce pour supprimer cette question de la liste "sans réponse" de stackExchange. (: - p._phidot_
@ Scott-Craner Comment pourrais-je changer le code, si je veux savoir combien de fois un compte se produit, indépendamment du groupe ou de la condition X? - Khaled