A voir également:
- Excel 2003 - fonction SOMMEPROD
- Fonction si et excel - Guide
- Liste déroulante excel - Guide
- Fonction moyenne excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
15 réponses
Bonjour michel_b,
Il m'a fallu du temps pour trouver la solution, car mes deux premières formules ne fonctionnaient pas correctement voir
J4=SOMMEPROD(D2:D34;RECHERCHEV(A2:A34;UNITÉS;4;FAUX))
J6=SOMMEPROD((UNITÉS_NOMS_COMPLETS=A2:A34)*(D2:D34)*(UNITÉS_MÉTAL))
Mais enfin de compte, ma dernière formule a fonctionné voir
J8=SOMMEPROD((UNITÉS_NOMS_SANS_MISSILES=A2:A34)*(D2:D34)*(UNITÉS_MÉTAL_SANS_MISSILES))
Tu avais raison s'il y a 33 lignes dans un tableau, il faut qu'il en ait 33 dans l'autre pour que la fonction SOMMEPROD fonctionne.
Voici le lien au cas où cela intéressait quelqu'un d'autre: https://www.cjoint.com/?giqwhzDShI
Je tenais encore une fois à te remercier.
PS: si un modérateur passe par là, pourrait-il mettre le sujet comme résolu? MERCI.
Il m'a fallu du temps pour trouver la solution, car mes deux premières formules ne fonctionnaient pas correctement voir
J4=SOMMEPROD(D2:D34;RECHERCHEV(A2:A34;UNITÉS;4;FAUX))
J6=SOMMEPROD((UNITÉS_NOMS_COMPLETS=A2:A34)*(D2:D34)*(UNITÉS_MÉTAL))
Mais enfin de compte, ma dernière formule a fonctionné voir
J8=SOMMEPROD((UNITÉS_NOMS_SANS_MISSILES=A2:A34)*(D2:D34)*(UNITÉS_MÉTAL_SANS_MISSILES))
Tu avais raison s'il y a 33 lignes dans un tableau, il faut qu'il en ait 33 dans l'autre pour que la fonction SOMMEPROD fonctionne.
Voici le lien au cas où cela intéressait quelqu'un d'autre: https://www.cjoint.com/?giqwhzDShI
Je tenais encore une fois à te remercier.
PS: si un modérateur passe par là, pourrait-il mettre le sujet comme résolu? MERCI.
m@rina
Messages postés
21286
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
22 janvier 2025
11 381
5 juin 2009 à 17:33
5 juin 2009 à 17:33
Bonjour,
Et si tu nous disais plus précisément ce que tu veux compter, avec un petit exemple à l'appui ?... (http://cjoint.com).
m@rina
Et si tu nous disais plus précisément ce que tu veux compter, avec un petit exemple à l'appui ?... (http://cjoint.com).
m@rina
pépé35530
Messages postés
2942
Date d'inscription
vendredi 1 mai 2009
Statut
Membre
Dernière intervention
19 mars 2016
1 386
5 juin 2009 à 22:34
5 juin 2009 à 22:34
Bonjour,
D'après ce que je viens de lire, excel ne gère au maximum que 30 matrices.
Voir si c'est encore vrai sous excel 2007.
A+
pépé
D'après ce que je viens de lire, excel ne gère au maximum que 30 matrices.
Voir si c'est encore vrai sous excel 2007.
A+
pépé
Bonjour m@rina et pépé35530,
Le classeur sur lequel je travaille est très compliqué et volumineux. De plus, il concerne un jeu de gestion (donc il n’y pas toujours très intéressant pour les autres personnes).
Cependant, je peux supprimer les nombreuses feuilles qui ne sont pas nécessaires pour les calculs que j’aimerais effectuer, mais je ne voudrai pas vous ennuyer non plus.
J’ai laissé les noms (plages données) que j’utilise dans le classeur complet.
La feuille IU (Informations sur les Unités) ne sert qu’à aller chercher les informations pour les calculs.
La feuille CPU1 (Calculs Particuliers sur les Unités n°1) est la feuille où je voudrai réaliser les calculs.
Actuellement en E35, j’ai la réponse que j’aimerais obtenir en J2 (soit le total en métal pour toutes les unités) avec ce genre de formule =SOMMEPROD(D2:RECHERCHEV(A2;UNITÉS;4;FAUX);D3:RECHERCHEV(A3;UNITÉS;4;FAUX))
Cela éviterait de devoir utiliser les cellules (E2:E34). Ainsi, le tableau serait moins volumineux.
Pour éviter qu’il y ait plus de 30 matrices, je crois avoir trouvé une solution, mais il faut faire intervenir une autre condition dans la formule. Actuellement en E36, j’ai la réponse que j’aimerais obtenir en J3 (soit le total en métal pour les UT (Unités Terrestre)) avec ce genre de formule =SI(B2:B34="UT";SOMMEPROD(D2:RECHERCHEV(A2;UNITÉS;4;FAUX);D3:RECHERCHEV(A3;UNITÉS;4;FAUX));FAUX)
Cela éviterait de devoir utiliser les cellules (E2:E34). Ainsi, le tableau serait moins volumineux.
Voici le classeur: https://www.cjoint.com/?ghk14RZAgm
Je vous remercie pour vos conseils.
Le classeur sur lequel je travaille est très compliqué et volumineux. De plus, il concerne un jeu de gestion (donc il n’y pas toujours très intéressant pour les autres personnes).
Cependant, je peux supprimer les nombreuses feuilles qui ne sont pas nécessaires pour les calculs que j’aimerais effectuer, mais je ne voudrai pas vous ennuyer non plus.
J’ai laissé les noms (plages données) que j’utilise dans le classeur complet.
La feuille IU (Informations sur les Unités) ne sert qu’à aller chercher les informations pour les calculs.
La feuille CPU1 (Calculs Particuliers sur les Unités n°1) est la feuille où je voudrai réaliser les calculs.
Actuellement en E35, j’ai la réponse que j’aimerais obtenir en J2 (soit le total en métal pour toutes les unités) avec ce genre de formule =SOMMEPROD(D2:RECHERCHEV(A2;UNITÉS;4;FAUX);D3:RECHERCHEV(A3;UNITÉS;4;FAUX))
Cela éviterait de devoir utiliser les cellules (E2:E34). Ainsi, le tableau serait moins volumineux.
Pour éviter qu’il y ait plus de 30 matrices, je crois avoir trouvé une solution, mais il faut faire intervenir une autre condition dans la formule. Actuellement en E36, j’ai la réponse que j’aimerais obtenir en J3 (soit le total en métal pour les UT (Unités Terrestre)) avec ce genre de formule =SI(B2:B34="UT";SOMMEPROD(D2:RECHERCHEV(A2;UNITÉS;4;FAUX);D3:RECHERCHEV(A3;UNITÉS;4;FAUX));FAUX)
Cela éviterait de devoir utiliser les cellules (E2:E34). Ainsi, le tableau serait moins volumineux.
Voici le classeur: https://www.cjoint.com/?ghk14RZAgm
Je vous remercie pour vos conseils.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
smartway14
Messages postés
822
Date d'inscription
mercredi 15 octobre 2008
Statut
Membre
Dernière intervention
8 octobre 2011
185
7 juin 2009 à 11:21
7 juin 2009 à 11:21
bonjour;
la fonction SOMMEPROD() s'utilise pour calculer une somme sous plusieur conditions :
voici la formule:
=SOMME(D2*RECHERCHEV( A2;UNITEE;4;faut);D3*RECHERCHEV(A3;UNITEE;4;faut))
la fonction SOMMEPROD() s'utilise pour calculer une somme sous plusieur conditions :
voici la formule:
=SOMME(D2*RECHERCHEV( A2;UNITEE;4;faut);D3*RECHERCHEV(A3;UNITEE;4;faut))
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
7 juin 2009 à 11:38
7 juin 2009 à 11:38
Bonjour,
Est ce normal que tu ais 38 ligne dans le tableau U1 et 34 dans le tableau CPU1 ?
(somme prod ne fonctionne qu'avec des plages de m^me configuration)
sinon (ca marche quand m^me)
=SOMMEPROD(D2:D38;IU!D2:D38) pour le métal
je regarde pour UT
edit 11:45h
et pour les UT je propose la matricielle du dimanche
=SOMME(SI((B2:B38="UT");(D2:D38)*(IU!D2:D38)))
le curseur étant dans la barre de formules, valides par Ctrl+maj+entree et non par entree comme d'hab. XL encadre automatiquement la formules par des accolades
Est ce normal que tu ais 38 ligne dans le tableau U1 et 34 dans le tableau CPU1 ?
(somme prod ne fonctionne qu'avec des plages de m^me configuration)
sinon (ca marche quand m^me)
=SOMMEPROD(D2:D38;IU!D2:D38) pour le métal
je regarde pour UT
edit 11:45h
et pour les UT je propose la matricielle du dimanche
=SOMME(SI((B2:B38="UT");(D2:D38)*(IU!D2:D38)))
le curseur étant dans la barre de formules, valides par Ctrl+maj+entree et non par entree comme d'hab. XL encadre automatiquement la formules par des accolades
Bonjour smartway14,
Je te remercie pour la formule. Néanmoins, elle est longue à écrire.
Bonjour michel_m,
Oui, c'est normal, les 4 dernières unités sont des missiles et il faut d'autres ressources pour les construire. Donc, je ne les aie pas reprises dans la deuxième feuille.
Qu'entends-tu par des plages la même configuration?
Je te remercie pour les formules, elles fonctionnent parfaitement et sont beaucoup plus courtes.
Je te remercie pour la formule. Néanmoins, elle est longue à écrire.
Bonjour michel_m,
Oui, c'est normal, les 4 dernières unités sont des missiles et il faut d'autres ressources pour les construire. Donc, je ne les aie pas reprises dans la deuxième feuille.
Qu'entends-tu par des plages la même configuration?
Je te remercie pour les formules, elles fonctionnent parfaitement et sont beaucoup plus courtes.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
7 juin 2009 à 16:17
7 juin 2009 à 16:17
la m^me configuration:
c'est vrai que c'est pas très explicite, excuses moi
==< la m^me hauteur dans ce cas: ligne 2 à ligne 38
s'il y a une différence (ligne 2 à ligne 34 dans le 2) tableau2, sommeprod et les matricielles ne fonctionnent pas
donc, par prudence, laisse les lignes 35 à 38 vides dans le tableau2
c'est vrai que c'est pas très explicite, excuses moi
==< la m^me hauteur dans ce cas: ligne 2 à ligne 38
s'il y a une différence (ligne 2 à ligne 34 dans le 2) tableau2, sommeprod et les matricielles ne fonctionnent pas
donc, par prudence, laisse les lignes 35 à 38 vides dans le tableau2
Bonsoir michel_m,
Je te remercie pour tes explications. La formule finale est vraiment très simple quand tu as compris la fonction. Cependant, j'aimerais y intégrer une RECHERCHE VERTICALE au cas où il y aurait une différence entre les tableaux des feuilles CPU1 et IU (exemple: les données pour un même type d'unité ne seraient pas sur la même ligne…). Je vais réfléchir à cette question et je te tiens au courant…
MERCI
Je te remercie pour tes explications. La formule finale est vraiment très simple quand tu as compris la fonction. Cependant, j'aimerais y intégrer une RECHERCHE VERTICALE au cas où il y aurait une différence entre les tableaux des feuilles CPU1 et IU (exemple: les données pour un même type d'unité ne seraient pas sur la même ligne…). Je vais réfléchir à cette question et je te tiens au courant…
MERCI
Bonsoir michel_m,
Je ne trouve pas la solution pour intégrer une RECHERCHE VERTICALE à la fonction. Pourtant, je ne pense pas qu'il y ait une erreur dans ma formule =SOMMEPROD(D2:D34;RECHERCHEV(A2:A34;UNITÉS;4;FAUX))
Peut-être est-ce tout simplement impossible à réaliser. Mais c'est dommage, car comme je l'ai dit, s'il y a une différence entre les tableaux des feuilles CPU1 et IU (des données pour un même type d'unité pas sur la même ligne...) ou s'il y a une modification du tableau IU (insertion d'une nouvelle colonne…); la formule sera faussée.
MERCI
Je ne trouve pas la solution pour intégrer une RECHERCHE VERTICALE à la fonction. Pourtant, je ne pense pas qu'il y ait une erreur dans ma formule =SOMMEPROD(D2:D34;RECHERCHEV(A2:A34;UNITÉS;4;FAUX))
Peut-être est-ce tout simplement impossible à réaliser. Mais c'est dommage, car comme je l'ai dit, s'il y a une différence entre les tableaux des feuilles CPU1 et IU (des données pour un même type d'unité pas sur la même ligne...) ou s'il y a une modification du tableau IU (insertion d'une nouvelle colonne…); la formule sera faussée.
MERCI
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
7 juin 2009 à 22:39
7 juin 2009 à 22:39
pas trop compris tes doutes: s'il y a des différences sur un produit et une de ses caractéristiques dans des tableaux différents, c'est qu'il y a certainement double saisie, faute rédhibitoire en informatique...
les formules matricielles et par conséquent sommeprod sont indépendantes de l'ordre dans lequel elles travaillent;
Enfin, les fonctions RECHERCHE sont bien pratiques mais très limitées dans leur efficacité. la formule imbriquée INDEX-EQUIV est à privilégier
edit: les messages se sont croisés:
prend pas ça mal mais, c'est dans 99% des cas, une absurdité de glisser des rechercheH et .ou rechercheV dans une matricielle ou Sommeprod
mais ces 2 types de formules ne sont pas forcément évidentes à comprendre...
les formules matricielles et par conséquent sommeprod sont indépendantes de l'ordre dans lequel elles travaillent;
Enfin, les fonctions RECHERCHE sont bien pratiques mais très limitées dans leur efficacité. la formule imbriquée INDEX-EQUIV est à privilégier
edit: les messages se sont croisés:
prend pas ça mal mais, c'est dans 99% des cas, une absurdité de glisser des rechercheH et .ou rechercheV dans une matricielle ou Sommeprod
mais ces 2 types de formules ne sont pas forcément évidentes à comprendre...
Bonjour michel_m,
Je voulais dire que si, par exemple, les informations de l'unité A sur le tableau 1 sont sur la ligne 10 et sur le tableau 2 sur la ligne 15, le résultat sera sûrement faussé puisqu'il prendra les informations d'une autre unité pour effectuer le calcul. En effet, actuellement, avec tes formules, le système ne vérifie pas que l'unité correspond bien dans les deux tableaux, avec une RECHERCHE VERTICALE, il vérifierait automatiquement si le nom de l'unité correspond bien dans les deux tableaux.
Je ne connais pas la fonction INDEX-EQUIV mais j'essayerai. Je ne prends pas mal tes commentaires, justement il m'aide à évoluer; des critiques sont toujours positives à condition d'être argumentées.
Cependant, je crois avoir trouver une solution plus simple que je dois essayer en créant tout simplement des plages nommées (noms d'unités, métal…) et en lui indiquant de vérifier le nom de l'unité et de prendre le métal correspondant, un peu comme dans cette formule: =SOMMEPROD((MINES_TYPES=A3)*(MINES_NIVEAUX>=B3)*(MINES_NIVEAUX<=C3)*(MINES_MÉTAL))
Je te remercie pour ton aide et tes conseils.
PS: je maîtrise les RECHERCHE VERTICALES, mais pas les SOMMEPROD, de plus, imbriquer plusieurs fonctions n'est pas toujours simple, à part les SI imbriqués qui ne me posent plus aucun problème (rire): =SI($K$25="Mines PA";SI(E30=1;RECHERCHEV(A30&E30;MINES;2;0);"MC");SI($K$25="Mines QG";SI(B30=1;RECHERCHEV(A30&B30;MINES;2;0);"MC");(SI($K$25="Mines - chères";SI(CNUM(B30)>CNUM(E30);SI(E30=1;RECHERCHEV(A30&E30;MINES;2;0);"MC");SI(B30=1;RECHERCHEV(A30&B30;MINES;2;0);"MC"));(SI($K$25="Mines + chères";SI(CNUM(B30)>CNUM(E30);SI(B30=1;RECHERCHEV(A30&B30;MINES;2;0);"MC");SI(E30=1;RECHERCHEV(A30&E30;MINES;2;0);"MC"))))))))
Je voulais dire que si, par exemple, les informations de l'unité A sur le tableau 1 sont sur la ligne 10 et sur le tableau 2 sur la ligne 15, le résultat sera sûrement faussé puisqu'il prendra les informations d'une autre unité pour effectuer le calcul. En effet, actuellement, avec tes formules, le système ne vérifie pas que l'unité correspond bien dans les deux tableaux, avec une RECHERCHE VERTICALE, il vérifierait automatiquement si le nom de l'unité correspond bien dans les deux tableaux.
Je ne connais pas la fonction INDEX-EQUIV mais j'essayerai. Je ne prends pas mal tes commentaires, justement il m'aide à évoluer; des critiques sont toujours positives à condition d'être argumentées.
Cependant, je crois avoir trouver une solution plus simple que je dois essayer en créant tout simplement des plages nommées (noms d'unités, métal…) et en lui indiquant de vérifier le nom de l'unité et de prendre le métal correspondant, un peu comme dans cette formule: =SOMMEPROD((MINES_TYPES=A3)*(MINES_NIVEAUX>=B3)*(MINES_NIVEAUX<=C3)*(MINES_MÉTAL))
Je te remercie pour ton aide et tes conseils.
PS: je maîtrise les RECHERCHE VERTICALES, mais pas les SOMMEPROD, de plus, imbriquer plusieurs fonctions n'est pas toujours simple, à part les SI imbriqués qui ne me posent plus aucun problème (rire): =SI($K$25="Mines PA";SI(E30=1;RECHERCHEV(A30&E30;MINES;2;0);"MC");SI($K$25="Mines QG";SI(B30=1;RECHERCHEV(A30&B30;MINES;2;0);"MC");(SI($K$25="Mines - chères";SI(CNUM(B30)>CNUM(E30);SI(E30=1;RECHERCHEV(A30&E30;MINES;2;0);"MC");SI(B30=1;RECHERCHEV(A30&B30;MINES;2;0);"MC"));(SI($K$25="Mines + chères";SI(CNUM(B30)>CNUM(E30);SI(B30=1;RECHERCHEV(A30&B30;MINES;2;0);"MC");SI(E30=1;RECHERCHEV(A30&E30;MINES;2;0);"MC"))))))))
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
8 juin 2009 à 16:32
8 juin 2009 à 16:32
tu tagges "résolu" en haut de ton premier message....
Bonjour michel_m,
Je ne saurai pas car je ne suis pas inscrit. Cependant, j'ai encore un problème avec la prise en considération des unités "UT", ma formule ne fonctionne pas, mais je n'ai pas eu le temps d'approfondir.
=SI(B2:B38="UT");SOMMEPROD((UNITÉS_NOMS_SANS_MISSILES=A2:A34)*(D2:D34)*(UNITÉS_MÉTAL_SANS_MISSILES));FAUX)
Je te remercie.
Je ne saurai pas car je ne suis pas inscrit. Cependant, j'ai encore un problème avec la prise en considération des unités "UT", ma formule ne fonctionne pas, mais je n'ai pas eu le temps d'approfondir.
=SI(B2:B38="UT");SOMMEPROD((UNITÉS_NOMS_SANS_MISSILES=A2:A34)*(D2:D34)*(UNITÉS_MÉTAL_SANS_MISSILES));FAUX)
Je te remercie.