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:
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

Retour