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

formule doublon ou plus

  • 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 à tous,

Je souhaiterais une formule qui me donnerait le maximum de nombres communs à une liste, par exemple:
2 4 8 6 12 15
3 6 4 12 14 11
2 3 4 6 11 12
ici dans les 3 listes il y a 4 6 et 12 communs et c'est ma recherche.
je ne pense pas qu'un fichier soit utile ici, vous me direz.
Merci à vous et bonne journée
 
Re : formule doublon ou plus

Re,

S'il peut y avoir des doublons sur une ligne, le problème n'est pas évident par formule.

On peut alors utiliser cette fonction VBA :

Code:
Function Liste(tablo)
Dim ub1&, ub2%, d As Object, i&, j%, a, b
tablo = tablo 'matrice (plus rapide)
ub1 = UBound(tablo)
ub2 = UBound(tablo, 2)
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To ub1
  For j = 1 To ub2
    If i = 1 Then
      d(tablo(1, j)) = 1
    Else
      If d.exists(tablo(i, j)) Then _
        d(tablo(i, j)) = d(tablo(i, j)) + 1
    End If
  Next
Next
a = d.items: b = d.keys
For i = LBound(a) To UBound(a)
  If a(i) < ub1 Then d.Remove b(i)
Next
Liste = d.keys 'matrice à une dimension
End Function
Une seule formule (non matricielle) en H1 :

Code:
=SI(LIGNE()>NBVAL(Liste(T));"";INDEX(Liste(T);LIGNE()))

Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Réactions: JHA
Re : formule doublon ou plus

Re,

Merci pour le Like JHA mais je n'ai pas bien traité le "Dictionary".

Utiliser plutôt cette macro :

Code:
Function Liste(tablo)
Dim ub1&, ub2%, d As Object, i&, j%, a, b
tablo = tablo 'matrice (plus rapide)
ub1 = UBound(tablo)
ub2 = UBound(tablo, 2)
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To ub1
  For j = 1 To ub2
    If d(tablo(i, j)) = i - 1 Then d(tablo(i, j)) = i
  Next
Next
a = d.items: b = d.keys
For i = LBound(a) To UBound(a)
  If a(i) < ub1 Then d.Remove b(i)
Next
Liste = d.keys 'matrice à une dimension
End Function
Fichier (2).

A+
 

Pièces jointes

Re : formule doublon ou plus

Bonjour @ tous,
Une seule formule suffit pas besoin de 2,
en I2,
Code:
=SI(LIGNES($2:2)>SOMME(N(NB.SI(A$2:F$3;A$1:F$1)=2));"";MIN(SI((NB.SI(A$2:F$3;A$1:F$1)=2)*(NB.SI(I$1:I1;A$1:F$1)=0);A$1:F$1)))
@ valider par Ctrl+Maj+Entree
@ tirer vers le bas
@ + +
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…