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

extraire le n° cité deux fois

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

Guido

XLDnaute Accro
Bonjour

J'ai bien sur regarder avant de poster...

Donc j'ai une plage de six chiffres

B3:C5 B3=1,B4=2,B5=3,C3=3,C4=9,C5=7

J'aimerai que le chiffre cités deux fois s'affiche dans la cellule B8,et si deux chiffres sont cités deux fois le deuxieme en C8

Merci pour votre aide

Guido
 
Re : extraire le n° cité deux fois

Bonjour

J'ai ajouté une colonne et des celulles

Donc j'ai une plage de 9 chiffres

et une plage de 18 chiffres

Je n'arrive pas a modifier les formules...

Sur le meme principe que plus haut

Merci pour votre aide

Guido
 
Re : extraire le n° cité deux fois

Bonjour Guido, CISCO, le forum,

Bon pour changer un peu un petit coup de VBA :

Code:
Function AuMoinsNfois(r As Range, Nfois&, ordre&)
Dim d As Object, c As Range
AuMoinsNfois = ""
Set d = CreateObject("Scripting.Dictionary")
For Each c In r
  If Application.CountIf(r, c) >= Nfois Then
    d(c.Value) = ""
    If d.Count = ordre Then AuMoinsNfois = c: Exit Function
  End If
Next
End Function
Fichier joint avec des tirages aléatoires dans la plage source (ce n'est pas indispensable).

Bonne journée.
 

Pièces jointes

Re : extraire le n° cité deux fois

Re,

Si l'on veut que le résultat soit trié ce n'est pas bien difficile avec Quick sort :

Code:
Function AuMoinsNfois(r As Range, Nfois&, ordre&)
Dim d As Object, c As Range, a
AuMoinsNfois = ""
Set d = CreateObject("Scripting.Dictionary")
For Each c In r
  If Application.CountIf(r, c) >= Nfois Then d(c.Value) = ""
Next
If ordre <= d.Count Then
  a = d.keys
  tri a, 0, UBound(a)
  AuMoinsNfois = a(ordre - 1)
End If
End Function

Sub tri(a, gauc, droi)       ' Quick sort
Dim ref, g, d, temp
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
    Do While a(g) < ref: g = g + 1: Loop
    Do While ref < a(d): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      g = g + 1: d = d - 1
    End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
Fichier (2).

A+
 

Pièces jointes

Re : extraire le n° cité deux fois

Bonjour à tous, bonjour Job75.

@ Job75 : Si le Monsieur nous mettait en pièce jointe un fichier vraiment représentatif de la situation, cela serait encore mieux... 🙂

@ plus
 
Re : extraire le n° cité deux fois

Bonjour

J'ai ajouté une colonne et des celulles

Donc j'ai une plage de 9 chiffres

et une plage de 18 chiffres

Je n'arrive pas a modifier les formules...

Sur le meme principe que plus haut

Merci pour votre aide

Guido

Re

Bonjour voici le fichier

Les deux options vont me rendre service.

Merci

amitiés

Guido
 

Pièces jointes

Re : extraire le n° cité deux fois

Re,

Pour votre dernier fichier cette solution dérivée de celle du post #19 :

Code:
Function AuMoinsNfois(r As Range, Nfois&, ordre&)
Dim d As Object, c As Range, a, b
AuMoinsNfois = ""
Set d = CreateObject("Scripting.Dictionary")
For Each c In r
  If Application.CountIf(r, c) >= Nfois Then _
    d(c.Value) = d(c.Value) + 1 'comptage
Next
If ordre <= d.Count Then
  a = d.items: b = d.keys
  tri a, b, 0, UBound(a)
  AuMoinsNfois = b(ordre - 1)
End If
End Function

Sub tri(a, b, gauc, droi)      ' Quick sort
Dim ref, g, d, temp
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
    Do While a(g) > ref: g = g + 1: Loop
    Do While ref > a(d): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      temp = b(g): b(g) = b(d): b(d) = temp
      g = g + 1: d = d - 1
    End If
Loop While g <= d
If g < droi Then Call tri(a, b, g, droi)
If gauc < d Then Call tri(a, b, gauc, d)
End Sub
La macro de tri a été modifiée pour classer sur le nombre de fois.

A+
 

Pièces jointes

Re : extraire le n° cité deux fois

Bonjour

Cf. le fichier en pièce jointe, toujours pour extraire les nombres cités au moins deux fois, avec Excel 2003, toujours avec une formule matricielle.

@ plus

P.S : Si tu veux les nombres cités au moins trois fois, il suffit de remplacer les >1 dans les formules par >2.
 

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

Discussions similaires

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