Microsoft 365 Sommeprod avec Liste de variables

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 !

patricko-13

XLDnaute Nouveau
Bonjour à tout le monde, je rencontre un soucis sur Excel pour écrire une sommeprod.

Je vous ai joins un fichier en exemple de ce que je souhaite faire.

En colonnes A à C j'ai des variables (Continent, Pays, Ville). J'ai nommé ces variables (ListeContinent, ListePays, ListeVille)

Ensuite j'ai un tableau avec des données en colonnes G à J

J'ai écris cette sommeprod: SOMMEPROD(($G$2:$G$6=ListeContinent)*($H$2:$H$6=ListePays)*($I$2:$I$6=ListeVille)*$J$2:$J$6).

Cependant, d'une part le résultat est faux et d'autre part je suis obligé pour la faire "fonctionner" que mes listes fassent la même taille que le tableau dans lequel se trouvent les données.

Est ce que vous auriez une meilleure manière d'écrire la sommeprod pour que déjà le résultat soit OK et si possible éviter que mes listes de variables doivent faire la même taille que le tableau de données ?

Je vous remercie par avance.

Cordialement, Patrick.
 

Pièces jointes

Bonjour,

Je te propose

=SOMME(RECHERCHEX(ListeContinent&"-"&ListePays&"-"&ListeVille;G2:G6&"-"&H2:H6&"-"&I2:I6;J2:J6;0;0))

Edit : Les "-" sont pour éviter que les lignes avec la ville de "iaPasBol" au "Niger" (=>AfriqueNigeriaPasbol) soit confondu avec les lignes de la ville de "PasBol" au "Nigeria" (=>AfriqueNigeriaPasbol) 😁
 

Pièces jointes

Dernière édition:
Bonjour,

Je te propose

=SOMME(RECHERCHEX(ListeContinent&"-"&ListePays&"-"&ListeVille;G2:G6&"-"&H2:H6&"-"&I2:I6;J2:J6;0;0))
Bonjour,

Merci pour ta proposition cependant ca ne fonctionne pas, car ca doit considérer les variables par groupe de ligne au lieu de les traiter indépendamment colonne par colonne.

De plus, si possible j'aimerai rester sur un format sommeprod car je vais ajouter des filtres complexes sur d'autres colonnes par la suite.

En tout cas merci pour ton aide.
 
Bonjour à tout le monde, je rencontre un soucis sur Excel pour écrire une sommeprod.
Je vous ai joins un fichier en exemple de ce que je souhaite faire.
En colonnes A à C j'ai des variables (Continent, Pays, Ville). J'ai nommé ces variables (ListeContinent, ListePays, ListeVille)
Ensuite j'ai un tableau avec des données en colonnes G à J
J'ai écris cette sommeprod: SOMMEPROD(($G$2:$G$6=ListeContinent)*($H$2:$H$6=ListePays)*($I$2:$I$6=ListeVille)*$J$2:$J$6).
Cependant, d'une part le résultat est faux et d'autre part je suis obligé pour la faire "fonctionner" que mes listes fassent la même taille que le tableau dans lequel se trouvent les données.
Est ce que vous auriez une meilleure manière d'écrire la sommeprod pour que déjà le résultat soit OK et si possible éviter que mes listes de variables doivent faire la même taille que le tableau de données ?
Je vous remercie par avance.
Cordialement, Patrick.
Bonjour,
Pourquoi vouloir utiliser une formule aussi archaïque et qui demande énormément de ressources, alors qu'il existe les TCD 🙄
 
Bonjour,

Merci pour ta proposition cependant ca ne fonctionne pas, car ca doit considérer les variables par groupe de ligne au lieu de les traiter indépendamment colonne par colonne.

De plus, si possible j'aimerai rester sur un format sommeprod car je vais ajouter des filtres complexes sur d'autres colonnes par la suite.

En tout cas merci pour ton aide.
Alors donne un exemple concret du /des résultat attendus.

Je ne comprend pas "considérer les variables par groupe de ligne..."

"au lieu de les traiter indépendamment colonne par colonne." =>???

Pour info : SommeProd est le plus souvent remplaçable par une simple Somme depuis que l'on est passé du mode CSE à AE-Array Evaluation.
 
Alors donne un exemple concret du /des résultat attendus.

Je ne comprend pas "considérer les variables par groupe de ligne..."

"au lieu de les traiter indépendamment colonne par colonne." =>???

Pour info : SommeProd est le plus souvent remplaçable par une simple Somme depuis que l'on est passé du mode CSE à AE-Array Evaluation.
Désolé j'ai omis de mettre le résultat attendu dans mon post initial.

Les variables des colonnes A à C que l'on retrouve dans le tableau de données G à J sont:

Continent: Europe donc on filtre sur Europe en colonne G
Pays: France, Italie donc on filtre sur ces Pays en colonne H
Ville: Paris, Rome, Turin donc on filtre sur ces Villes en colonne I

Ce qui nous donne 10 000 + 10 000 + 5 000
 
Désolé j'ai omis de mettre le résultat attendu dans mon post initial.

Les variables des colonnes A à C que l'on retrouve dans le tableau de données G à J sont:

Continent: Europe donc on filtre sur Europe en colonne G
Pays: France, Italie donc on filtre sur ces Pays en colonne H
Ville: Paris, Rome, Turin donc on filtre sur ces Villes en colonne I

Ce qui nous donne 10 000 + 10 000 + 5 000
??? C'est le résultat renvoyé par la formule de mon 1er post !

Dans ton fichier en A3 tu as Asie et Pays France !!! donc forcement c'est 0 pour moi, d'où le résultat de ma formule ! (j'avais ajouté dans ma réponse les valeurs de la ligne 4 pour montrer qu'elle fonctionnait)
 
??? C'est le résultat renvoyé par la formule de mon 1er post !

Dans ton fichier en A3 tu as Asie et Pays France !!! donc forcement c'est 0 pour moi, d'où le résultat de ma formule !
C'est ce que j'entendais par le fait que les variables ne sont pas liées entre elles sur une même ligne.

Je cherche à faire en sorte de filtrer la colonne G par les variables en colonne A, puis filtrer la colonne H par les variables en colonne B, et filtrer la colonne I par les variables de la colonne C
 
C'est ce que j'entendais par le fait que les variables ne sont pas liées entre elles sur une même ligne.

Je cherche à faire en sorte de filtrer la colonne G par les variables en colonne A, puis filtrer la colonne H par les variables en colonne B, et filtrer la colonne I par les variables de la colonne C
Bonjour,
VB:
=SOMMEPROD(($G$2:$G$6=A2)*($H$2:$H$6=B2)*($I$2:$I$6=C2)*$J$2:$J$6)
à tirer vers le bas
Cdlt
 
Tu as écrit

"Continent: Europe donc on filtre sur Europe en colonne G" Il manque ASIE
"Pays: France, Italie donc on filtre sur ces Pays en colonne H"
"Ville: Paris, Rome, Turin donc on filtre sur ces Villes en colonne I"

Filtre Contient >il prend toutes les lignes Europe et Asie => 5 lignes (toutes)
Ajout du critère Pays > il prend toutes les lignes France Italie => 4 lignes (de 2à 5)
Ajout du critère Ville> il prend toutes les lignes Paris, Rome, Turin => 3 lignes (2, 4, 5)

Je te propose

=SOMME(FILTRE(J2:J6;((BYROW((TRANSPOSE(ListeContinent)=G2:G6)*1;SOMME)>0)+(BYROW((TRANSPOSE(ListePays)=H2:H6)*1;SOMME)>0)+(BYROW((TRANSPOSE(ListeVille)=I2:I6)*1;SOMME)>0))>2))

Y a peut être plus simple 😰
 
C'est bon j'y arrive avec cette formule.

Merci de votre aide en tout cas et désolé de ne pas avoir été suffisamment clair dans l'expression de mon besoin.

=SOMMEPROD(--(ESTNUM(EQUIV(G2:G6;A2:A4;0))*--(ESTNUM(EQUIV(H2:H6;B2:B4;0))*--(ESTNUM(EQUIV(I2:I6;C2:C4;0))*(J2:J6)))))
 
- 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

Réponses
6
Affichages
112
Réponses
25
Affichages
472
Retour