Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

VBA_DEAD

XLDnaute Occasionnel
Bonsoir

j`ai un probleme d`excel et plutot de sumproduct :

Ma formule est la suivante et a pour objectif de regarder si un terme existe alors je fais une formule specifique

=sumproduct((ZONE1=a1)*(ZONE2=b1)*(ZONE3=c1),(ZONEVALEUR)="ALL",....


Mon probleme est que ce type de formule ne reconnait pas un terme j`ai l`impression => le sommeproduct ne reconait pas le ALL car c`est pas un chiffre... comment je fais pour lui faire comprendre ce que je veux?

si mes 3 conditions donnent pour valeur ds la col. valeur le terme "ALL" alors tu appliques la formule X sinon la formule Y

j`espere que c`est clair mon truc 😛

sinon je fais un exemple
merci et bonne nuit.

VBA_DEAD
 
Re : Formule excel

Bonjour,

Je ne vois pas bien ce que tu veux faire.

La fonction SOMMEPROD() ou SUMPRODUCT() compte ou additionne les cellules des lignes (ou des colonnes) sur lesquelles d'autres cellules répondent à des conditions spécifiées.

=SUMPRODUCT((ZONE1=a1)*(ZONE2=b1)*(ZONE3=c1)*(ZONE VALEUR="ALL"))
renverra le nombre de lignes qui répondent aux quatre conditions.

SUMPRODUCT((ZONE1=a1)*(ZONE2=b1)*(ZONE3=c1),(ZONE VALEUR="ALL")*ZONE A ADDITIONNER)
renverra la somme des valeurs de la zone à additionner dont les lignes répondent aux quatre conditions.

De là tu peux appliquer des formules différentes par la fonction SI ou IF
Par exemple :
=IF(la fonction SUMPRODUCT>0;formule 1; formule 2)

Si ce n'est pas cela ce que tu veux faire, met un petit exemple en pièce jointe avec un mot d'explication.

mjo
 
Re : Formule excel

Bonjour,

à essayer en H2 :
Code:
[FONT=Verdana]=SOMMEPROD(($A$18:$A$30=$A2)*($B$18:$B$30=$C2)*($C$18:$C$30=$E2)*(($D$18:$D$30=$G2)+($D$18:$D$30="all"));E$18:E$30)[/FONT]
puis copier-coller sur tout le tableau H2:J15

Le * équivaut au ET des formules conditionnelles
et le + équivaut au OU
 
Re : Formule excel

Bonjour Monique 🙂

et te voila encore une fois a me sauver. Faut que je prenne un abonnement, je vois que ca comme solution...

Vraiment merci pour ton aide, c`est nickel, par contre je comprend pas la formule sur le morceau ((xxx=G2)+(yyy="all")) car le fait de mettre un "+" ca fait quoi?

Je vois pas comment la formule comprends que si il y a "ALL" alors tu reportes ds tous les cas les donnees et que sinon faut regarder le terme (CODE1, CODE2...)

Si tu peux m`eclaircir je t`en remercie

Encore Merci

VBA_DEAD
 
Re : Formule excel

Re,

Tu es sûr que tu obtiens le résultat attendu ?

Le + équivaut au OU des formules conditionnelles
et le * équivaut au ET
Ou bien la cellule contient "All" ou bien elle contient le terme en G2.
Et là j'ai un doute, si une cellule contient "All", une autre contient le terme et que toutes les autres conditions sont remplies, tu obtiens la somme des 2 lignes.

SommeProd "se crée un tableau" et traduit les résultats par VRAI ou FAUX

Sur 3 lignes seulement (lignes 18:20)
En K2 de ton fichier :
=SOMMEPROD((A18:A20=A2)*(B18:B20=C2)*(C18:C20=E2)*((D18😀20=G2)+(D18😀20="all"));E18:E20)

Tu sélectionnes l'intérieur des parenthèses dans la barre de formule,
tu appuies sur F9 et ça donne :
=SOMMEPROD(({VRAI;FAUX;FAUX})*({VRAI;VRAI;VRAI})*({VRAI;VRAI;VRAI})*(({FAUX;FAUX;VRAI})+({VRAI;VRAI;FAUX}));{2;0;90})
où VRAI équivaut à 1 et FAUX à 0
FAUX * VRAI =0
VRAI * VRAI = 1
etc

Idem en sélectionnant la partie (({FAUX;FAUX;VRAI})+({VRAI;VRAI;FAUX}))
=SOMMEPROD(({VRAI;FAUX;FAUX})*({VRAI;VRAI;VRAI})*({VRAI;VRAI;VRAI})*({1;1;1});{2;0;90})

En sélectionnant les 3 parenthèses du début, ça donne :
=SOMMEPROD({1;0;0}*({1;1;1});{2;0;90})

Equivaut à une tableau de 3 x 3 cellules en A1:C3 par exemple
1ère colonne : 1, 0 et 0
2ème colonne : 1, 1 et 1
3ème colonne : 2, 0 et 90
=SOMMEPROD((A1:A3*B1:B3);C1:C3) = 2

Une page sur les formules matricielles, dont SommeProd :
Ce lien n'existe plus
 
Re : Formule excel

Re Monique, salut la pieuvre,

ben il me semble que j`ai ce que je veux deja avec ta 1ere formule

je vais tester lundi sur 2000 lignes et ca va m`en dire plus peut etre

en tout cas je garde tout ce que tu me donnes precieusement! comme a chqaue fois

Merci beaucoup... et je comprends (presque) tout ce que tu m`as dis



VBA_DEAD
 
Re : Formule excel

Re,

Sur 2000 lignes, ça risque de ramer.
En nommant les plages par formules, ça ira mieux.
En nommant la formule, ça ira encore mieux.
Sinon, tu as dans le fichier joint une autre formule,
Index Equiv en matriciel.
Elle sera peut-être plus rapide.

* * Dans le fichier, une ligne est reportée 2 fois

Ici, il fait beau, il y a du soleil et tout.
 

Pièces jointes

Re : Formule excel

Re Monique
alors je viens de tester en reel et devine.... y a un ajustement. Desole!!

en fait comme je l`explique ds ton file que je reprends il y a ds la liste de code la possibilite d`avoir un autre code (un autre parametre).Donc si le parametre SMC ou LRG apparait ds la liste (ligne 18 a 30) alors faut envoyer la valeur selonles cles 1, 2, 3 et 5.

C`est une condition en plus. C`est ta deuxieme formule la solution mais je bloque. Donc si cle 1,2 et 3 ont pour valeur ds col D 18😀30 le terme SMC ou LRG alors tu regarde les cles 1,2,3,et 5 sinon les cles1,2,3 et4

Peux tu y jeter un oeil stp (encore)?

Merci et deosle de ce contre temps

vba_dead
 

Pièces jointes

Re : Formule excel

Bonsoir

oui c`est pas facile a comprendre je te l`avoue.
Donc si tu prends la ligne 3, A3, B3 et C3.
si A3, B3 et C3 existent ds la zone A18:H30 et que la veleur Cle $ (ds D18😀30) = valeurt SMC ou LRG alors faut tu appliques la formule que tu as faire en prenant pour condition sur la ligen 3 donc la cle1, 2, 3 et si tu as SMC / LRG la cle 5.
Par contre si tu n`as PAS SMC/LRG ds la cle 4 (D18:d30), alors tu cherches la valeur qui correspond a la cle 1, 2, 3 et 4 (si tu prens la ligne 3)

Donc ligne 3, su cherches pour la cle1, 2 et 3 ce qu`il y a ds la zone A18:H30 tu vois que c`est all (bref pas SMC ou LRG) donc tu peux appliquer la formule Cle1, cle2 cle3 et cle4
Par contre si tu prends la 4 (210 pur cle 1), tu vois que le parametre en D27 est LRG (LRG ou SMC donc), ben la faut que ton sommeprod regarde la cle1, 2,3 et 5
C`est + clair?
desole, c`est super pour moi ce truc et ta formule marche pas. Si ligne 4 (tu vois que pour ce compte 210 le parametre LRG existe ds ligne 27.
et tu vois que la cle 1, 2, 3 et 5 coincident matchent donc tu renvoie la valeur
par contre ligne 3 (H3 n`est pas egal a LRG, donc tu ne reportes rien

Si je suis pas plus clair, demain je te fais un super file et tu vas voir ca va te sauter aux yeux.

Merci Monique pour ta patience

VBA_DEAD
 
Re : Formule excel

Re,

Ce n'est pas plus clair
car, justement, il n'y a pas de clé 5 en E18:E30
Tout est en D18: D30

Et je ne vois pas à quoi sert H2:H30
H2:H30 ne contient que SMC ou LRG et comme les 2 sont du pareil au même...

* * Si tu fais un fichier, STP, mets aussi les résultats attendus.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Formule si ?
Réponses
7
Affichages
377
Réponses
4
Affichages
803
Réponses
1
Affichages
717
Retour