• Initiateur de la discussion Initiateur de la discussion JJ1
  • Date de début Date de début

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 !

J

JJ1

Guest
Bonjour,

J'ai un souci avec la formule sommeprod, avec laquelle je souhaite compter le nombre de fois où deux nombres sont sur 2 lignes adjacentes dans une plage (ex: 1 en ligne 1 et 6 en ligne 2 ou vice-versa 6 en ligne 1 et 1 en ligne 2)
Ma première partie de formule me donne 0 en décalant vers le bas?
je joins un exemple (le résultat attendu ici est 2 (cases jaune et bleue) .
merci de votre aide.
Bonne soirée à tous.
 

Pièces jointes

Re : Formule sommeprod

Bonsoir David84,
Dans mon exemple, je ne comptabilise la somme que des 1 et des 6 (saisis en $F$1: $G$1), donc le 10 ne compte pas.
Le résultat en H1 devrait être 2
je joins un nouvel exemple pour montrer les "2 sens" de recherche 1-6 et 6-1, la somme ferait 3 (bleu+jaune+rose).
Merci
 

Pièces jointes

Re : Formule sommeprod

Bonjour JJ1, David84,

Essayez cette formule en H1 :

Code:
=SOMMEPROD(SIGNE(NB.SI(DECALER(A1:E1;LIGNE(1:100)-1;);F1))*SIGNE(NB.SI(DECALER(A2:E2;LIGNE(1:100)-1;);G1)))+SOMMEPROD(SIGNE(NB.SI(DECALER(A1:E1;LIGNE(1:100)-1;);G1))*SIGNE(NB.SI(DECALER(A2:E2;LIGNE(1:100)-1;);F1)))

Il y a donc 2 SOMMEPROD dont on fait la somme.

A+
 
Re : Formule sommeprod

Re,

Dans la formule que j'ai donnée, si les valeurs F1 ou G1 ne peuvent exister qu'une seule fois par ligne, on peut bien sûr supprimer les fonctions SIGNE :

Code:
=SOMMEPROD(NB.SI(DECALER(A1:E1;LIGNE(1:100)-1;);F1);NB.SI(DECALER(A2:E2;LIGNE(1:100)-1;);G1))+SOMMEPROD(NB.SI(DECALER(A1:E1;LIGNE(1:100)-1;);G1);NB.SI(DECALER(A2:E2;LIGNE(1:100)-1;);F1))

J'ai aussi remplacé * par ; dans chaque SOMMEPROD.

A+
 
Dernière édition:
Re : Formule sommeprod

Re,
bien vu Job !
On peut peut-être simplifier, mais sous réserve de tests.
sans la fonction signe :
=SOMMEPROD((NB.SI(DECALER(A1:E1;LIGNE(zone)-1😉;F1)*(NB.SI(DECALER(A2:E2;LIGNE(zone)-1😉;G1)))+(NB.SI(DECALER(A2:E2;LIGNE(zone)-1😉;F1)*(NB.SI(DECALER(A1:E1;LIGNE(zone)-1😉;G1))))

Avec la fonction signe :
=SOMMEPROD((SIGNE(NB.SI(DECALER(A1:E1;LIGNE(zone)-1😉;F1)*(NB.SI(DECALER(A2:E2;LIGNE(zone)-1😉;G1))))+SIGNE(NB.SI(DECALER(A2:E2;LIGNE(zone)-1😉;F1)*(NB.SI(DECALER(A1:E1;LIGNE(zone)-1😉;G1))))

Cordialement
 
Re : Formule sommeprod

Bonjour David84,

En effet, et on peut même simplifier un peu plus en évitant deux -1 :

Code:
=SOMMEPROD(NB.SI(DECALER(A1:E1;LIGNE(1:100)-1;);F1)*NB.SI(DECALER([COLOR="Red"]A1:E1[/COLOR];LIGNE(1:100););G1)+NB.SI(DECALER(A1:E1;LIGNE(1:100)-1;);G1)*NB.SI(DECALER([COLOR="Red"]A1:E1[/COLOR];LIGNE(1:100););F1))

Mais on peut aller encore plus loin en insérant une 1ère ligne (fichier joint) :

Code:
=SOMMEPROD(NB.SI(DECALER(A1:E1;LIGNE(1:100););F2)*(NB.SI(DECALER(A1:E1;LIGNE(1:100)-1;);G2)+NB.SI(DECALER(A2:E2;LIGNE(1:100););G2)))

A+
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
23
Affichages
668
  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
417
  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
391
Réponses
22
Affichages
2 K
Réponses
3
Affichages
255
Retour