Formule affichant écart en cellules entre deux cellules d' une même colonne

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 !

Henriett

XLDnaute Occasionnel
Bonjour,

Je cherche une formule ou macro affichant le nombre minimum de cellules comprises entre deux cellules ayant le même contenu et étant dans une colonne identique. J' ai joint un fichier expliquant un peu plus clairement mon problème.

Cordialement,
 

Pièces jointes

Dernière édition:
Re : Formule affichant écart en cellules entre deux cellules d' une même colonne

Bonsoir,

Ce que je cherche, c' est une formule qui donne le nombre ( minimum ) de cellules comprises entre deux cellules. Ces deux cellules sont dans la même colonne et contiennent le même chiffre.

Voici un autre fichier ci-joint.

Cordialement,
 

Pièces jointes

Re : Formule affichant écart en cellules entre deux cellules d' une même colonne

Bonjour Henriett, tbft,

Voyez cette fonction macro dans Module1 (Alt+F11) :

Code:
Function ECARTMIN(x As Variant, p As Variant) As Variant
Dim ub As Long, i As Long, j As Long
ECARTMIN = ""
p = Application.Transpose(p) 'matrice, plus rapide
ub = UBound(p)
For i = 1 To ub
  If p(i) = x Then
    For j = i + 1 To ub
      If p(j) = x Then
        ECARTMIN = Application.Min(IIf(ECARTMIN = "", j - i - 1, ECARTMIN), j - i - 1)
        i = j - 1
        Exit For
      End If
    Next
  End If
Next
End Function
Utilisée dans cette formule en D1 à tirer vers le bas :

Code:
=ECARTMIN(A1;A$1:A$16)
Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Formule affichant écart en cellules entre deux cellules d' une même colonne

Bonjour le fil, le forum,

Une autre manière de faire avec 2 tableaux auxiliaires t1 et t2 :

Code:
Function ECARTMIN(x As Variant, p As Variant) As Variant
Dim ub&, t1&(), t2() As Variant, i&, n&
ECARTMIN = ""
p = Application.Transpose(p) 'matrice, plus rapide
ub = UBound(p)
ReDim t1(ub - 1): ReDim t2(ub - 1)
For i = 1 To ub
  If p(i) = x Then
    t1(n) = i
    If n Then t2(n - 1) = i - t1(n - 1) - 1
    n = n + 1
  End If
Next
If n > 1 Then ECARTMIN = Application.Min(t2)
End Function
Peut-être est-ce plus rapide.

Fichier (2).

A+
 

Pièces jointes

Re : Formule affichant écart en cellules entre deux cellules d' une même colonne

Re,

J'ai testé les 2 fonctions avec une boucle de 100 000 itérations :

- version (1) => 16 secondes

- version (2) => 12 secondes

Donc avec les tableaux c'est plus rapide.

A+
 
Re : Formule affichant écart en cellules entre deux cellules d' une même colonne

Bonjour,

JBOBO, j' ai essayé ta formule, mais ça n' a pas l' air de marcher.

Job75, j' ai testé ta formule dans une nouvelle feuille et avec de nouveaux chiffres, mais il s' affiche : ?NOM#
J' ai joint le fichier.

Cordialement,
 

Pièces jointes

Re : Formule affichant écart en cellules entre deux cellules d' une même colonne

Bonjour Henriett,

Là pas besoin de VBA, formule en D1 :

Code:
=SI(NB.SI(A2:A$21;A1);EQUIV(A1;A2:A$21;0)-1;"")
à tirer vers le bas.

A+
 
Dernière édition:
- 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
7
Affichages
1 K
Réponses
3
Affichages
594
Retour