Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Formule pour compter le nombre de couple de nombres d’une grille

excelfresh

XLDnaute Nouveau
Bonjour à tous!
J’aimerais compter le nombre fois qu’on le couple (a ; b) dans la grille du fichier ci-joint.
Sachant que chaque couple (a ; b) est constitué des nombres présents sur les lignes de la grille.
Par exemple la première ligne de la grille du fichier est constituée des couple (3 ; 6), (3 ; 10) et (6 ; 10)
Combien y a-t-il de couple (3 ; 6), (3 ; 10), (6 ; 10) dans toute la grille ? Ainsi de suite…
Quelqu’un aurait-il une super formule pour faire ce décompte ?
Je vous remercie d’avance.
 

Pièces jointes

  • décompter les couples.xlsx
    10 KB · Affichages: 41

phlaurent55

Nous a quittés en 2020
Repose en paix
Bonjour excelfresh,

voir fichier joint (solution via fonction perso)
il est nécessaire d'activer les macros à l'ouverture du fichier

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    16.1 KB · Affichages: 30

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour excelfresh,

Hum hum pas bien sur d'avoir compris mais un essai quand même

Cordialement

EDIT : phlaurent55
 

Pièces jointes

  • décompter les couples.xlsx
    10.5 KB · Affichages: 33

CISCO

XLDnaute Barbatruc
Bonjour

Une fois qu'on a trouvé, cela parait tellement simple. Tu peux faire dans O2 avec
Code:
SOMMEPROD((DECALER(A$3:A$27;;M2)=M2)*(DECALER(A$3:A$27;;N2)=N2))

@ plus

PS : Bonjour PhLaurent55 et Jocelyn
 

CISCO

XLDnaute Barbatruc
Bonjour

Avec la formule de mon post #4, avec plus de 5000 lignes, c'est "instantané".

@ plus

P.S : Et la formule utilisée est plus simple à comprendre que celle de Jocelyn
 

Pièces jointes

  • décompter les couples.xlsx
    247.3 KB · Affichages: 43
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

On part de la plage A3:A5627. DECALER(A$3:A$5627;;M2) va chercher la plage M2 colonnes plus à droite. Si M2 = 1, cela donne la plage B3:B5627. Si M2 = 2, on a C3:C5627 et ainsi de suite.

DECALER(A$3:A$5627;;M2) = M2 renvoie des 0 lorsque les cellules de cette plage ne contiennent pas la valeur M2, des 1 si elles contiennent la même valeur que M2. On obtient quelque chose du genre ( à l'aide de Formules --> Évaluation de formule)


DECALER(A$3:A$5627;;N22) = N2 donne la même chose mais par rapport à N2.
On a (DECALER(A$3:A$5627;;M2) = M2) * DECALER(A$3:A$5627;;N2) = N2) qui donne donc tout une série de produits, des 1 *1, des 1*0, des 0*1, et des 0 * 0. SOMMEPROD fait la somme de tous les 1 *1.

@ plus
 

excelfresh

XLDnaute Nouveau
Bonjour

Avec la formule de mon post #4, avec plus de 5000 lignes, c'est "instantané".

@ plus

P.S : Et la formule utilisée est plus simple à comprendre que celle de Jocelyn
Dans la petite grille du fichier ci-joint, nous avons entre autre réellement 2 fois la paire {1, 2} et zéro fois la paire {1, 10}
Mais votre formule affiche une fois la paire {1, 2} et une fois la paire {1, 10}.
10 n'apparait nulle part dans la grille.
Pouvez-vous m'aider à y voir plus clair?
Merci.
 

Pièces jointes

  • décompter les paires.xlsx
    11 KB · Affichages: 21

CISCO

XLDnaute Barbatruc
Bonjour

1) Il faut faire avec
Code:
=SOMMEPROD((DECALER(D$2:D$9;;A2)=A2)*(DECALER(D$2:D$9;;B2)=B2))

pas avec =SOMMEPROD((DECALER(D$2: D$9;;A2)=A2)*(DECALER(D$2: D$9;;A2)=A2))

2) Ton dernier tableau ne correspond pas à l'exemple donné dans ta première pièce jointe : A savoir que les 1 ne sont pas toujours et uniquement dans la 1ère colonne de ton tableau, les 2 dans la 2nde, les 3 dans la troisième... Dans ce cas, ma proposition ne convient pas.

@ plus
 

excelfresh

XLDnaute Nouveau
Okay!
Avez-vous une proposition pour ce dernier tableau?
La fonction de phlaurent55 fonctionne ce dernier tableau. Mais elle est très lente.
Merci!
 

Pièces jointes

  • décompter les paires.xlsm
    680.9 KB · Affichages: 23

CISCO

XLDnaute Barbatruc
Bonjour

Deux autre propositions correspondant mieux à ton dernier tableau, une, sans tenir compte de l'ordre des chiffres, l'autre, en en tenant compte (Colonne D, formule matricielle à valider avec les touches Ctrl+maj+entrer). Cela ne fonctionnera tel quel que si il ni a que des nombres de 0 à 9, pas de 10, 11 et ainsi de suite. Il est assez facile de transformer mes propositions pour prendre en compte des nombres plus grands, mais cela va donner une formule encore plus lourde, avec de nombreux &";"&.

@ plus
 

Pièces jointes

  • décompter les paires.xlsx
    12.5 KB · Affichages: 30

excelfresh

XLDnaute Nouveau
Je n'ai compris à votre formule. Je serai incapable de la refaire tout seul!
Merci tout de même.
Je suis ouvert à toute autre proposition plus simple.
 

Discussions similaires

Réponses
5
Affichages
242
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…