Microsoft 365 Calcul matriciel ?

  • Initiateur de la discussion Initiateur de la discussion Neo1976_
  • 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 !

Neo1976_

XLDnaute Nouveau
Bonjour à tous,
J'espère que vous allez bien. Je n'ai pas trouvé de réponse à mon problème, ni par moi-même ni sur le forum, alors j'ouvre une discussion.
Je cherche à faire une formule qui compte dans une liste le nombre d'éléments en commun.

Par exemple, en partant de la source suivante :
SportActivité
RienFait le café
TriathlonCourt le 100 m en dix secondes
TriathlonNage 1500 m en 30 minutes
TriathlonParcourt 200 km en vélo sans boire
NatationNage 1500 m en 30 minutes
Course à piedCourt le 100 m en dix secondes
Course à pied plusCourt le 100 m en dix secondes
Course à pied plusFait le café
CyclismeParcourt 200 km en vélo sans boire
Cyclisme plusParcourt 200 km en vélo sans boire
Cyclisme plusFait le café

Je souhaite écrire une formule qui, en indiquant 2 sports parmi la liste, me donne le nombre d'activités communes.
Par exemple, pour Triathlon et Course à pied, le résultat est 1 car l'activité "Court le 100 m en dix secondes" est présente pour les deux.

Je vous joins un fichier avec cette source et le résultat attendu.

J'ai l'intuition qu'il s'agit d'un SOMME.PROD, mais je n'en suis pas sûr, et si c'est cela je ne suis pas assez habitué de cette fonction pour réussir à écrire la formule...
Je pourrais l'écrire en VBA, mais je pense que ce n'est pas nécessaire...

Une idée ?

Merci d'avance le forum !
 

Pièces jointes

Re

Alors, pour plagier Paris Match 😉
0101Filtro.jpg
 
Bonsoir @Neo1976_ , @Staple1600 😉,

Une formule matricielle en D19 à copier/tirer vers la droite et vers le bas:
Code:
=SOMME(--ESTNUM(SI(SI(Tableau1[Sport]=$C19;EQUIV(Tableau1[Activité];Tableau1[Activité];0);"")<>"";EQUIV(SI(Tableau1[Sport]=$C19;EQUIV(Tableau1[Activité];Tableau1[Activité];0);"");SI(Tableau1[Sport]=D$18;EQUIV(Tableau1[Activité];Tableau1[Activité];0);"");0);"")))

Formule Matricielle:
  • à valider par la combinaison des trois touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée
  • ne pas entourer la formule d'accolade au clavier. C'est la validation par Ctrl+Maj+Entrée qui ajoute les accolades
  • une fois saisie et validée, une formule matricielle peut être copiée et collée
  • à chaque édition/modification de la formule matricielle, penser à la valider par Ctrl+Maj+Entrée

nota : cette formule ne doit fonctionner que si il n'y a pas de doublons (sport, activité) dans le tableau.
 

Pièces jointes

Dernière édition:
Re,

A mon avis, cette fonction personnalisée est meilleure que la formule car elle n'est pas sensible aux doublons (voir tableau rose dans le fichier). Formule en M19 à copier/tirer vers la droite et vers le bas.
La fonction VBA;
VB:
Function MemeActi(tablo As Range, acti1, acti2) As Long
Dim dico As New Dictionary, t, i&, n&
   Set dico = CreateObject("scripting.dictionary")
   dico.CompareMode = TextCompare
   t = tablo.Value
   For i = 1 To UBound(t)
      If t(i, 1) = acti1 Then dico(t(i, 2)) = ""
   Next i
   For i = 1 To UBound(t)
      If t(i, 1) = acti2 Then If dico.Exists(t(i, 2)) Then n = n + 1: dico.Remove t(i, 2)
   Next i
   MemeActi = n
End Function


edit : Bonsoir R@chid 🙂🙂
 

Pièces jointes

Dernière édition:
Bonsoir le fil

Neo1976_
Ton incompréhension de 20h26 (hier) n'a pas été levée par mon message de 20h32 ?
Je m'en inquiète car tu ne m'as pas tenu informé de la chose...🙄

bonjour @Staple1600 ! Et désolé pour le temps de réponse...
la solution du filtre ne me convenait pas car j’ai besoin du résultat pour toutes les combinaisons, pour exploiter cela ensuite dans un TCD. c’est pour cela que la formule ou la fonction VBA me semblent nécessaire. A mois qu’avec un filtre je puisse obtenir le résultat pour toutes les combinaisons, mais je ne connais pas une telle utilisation.
 
- 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
4
Affichages
670
Réponses
9
Affichages
1 K
Réponses
9
Affichages
1 K
Retour