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

Ecart le plus petit entre 4 cellules

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 !

Chri8Ed

XLDnaute Occasionnel
Bonjour

Je souhaiterais trouver le plus écart entre 4 cellules

(Ces 4 cellules sont placées côte à côte sur une même ligne et font références à des dates)

Exemple :
G4(01/08/2010), H4(18/08/2010), I4(30/08/2010), J4(14/09/2010)

Je souhaiterais trouver en K4 l'écart en jour le plus petit entre n'importe laquelle de ces dates.

En l'occurrence dans le cas présent le chiffre "12".

Existe t-il une fonction pour me permette de trouver cette valeur ?

Merci d'avance

Bonne journée
 
Re : Ecart le plus petit entre 4 cellules

Bonjour,

Si les dates sont rangées en ordre croissant, comme sous l'exemple :
=MIN(H4-G4;I4-H4;J4-I4)

Si elles ne le sont pas, il faudra faire appel à la fonction PETITE.VALEUR pour spécifier les arguments des soustractions.
 
Re : Ecart le plus petit entre 4 cellules

Bonjour hoerwind

Non les les cellules ne sont pas forcément dans l'ordre

Je ne comprends pas bien la formule "Petite.valeur"

Je dois mettre petite.valeur (G4:J4;#)
# représente quelle valeur ?

Merci
 
Re : Ecart le plus petit entre 4 cellules

Re,

Le # est égal au rang de la valeur cherchée.

Cette formule te l'expliquera :
Code:
=MIN(PETITE.VALEUR(G4:J4;2)-PETITE.VALEUR(G4:J4;1);PETITE.VALEUR(G4:J4;3)-PETITE.VALEUR(G4:J4;2);PETITE.VALEUR(G4:J4;4)-PETITE.VALEUR(G4:J4;3))
 
Re : Ecart le plus petit entre 4 cellules

Rebonjour

J'ai un petit problème

Je n'ai pas encore eu le temps de comprendre la syntaxe de ta formule ....

Mais, j'ai oublié de préciser que il y a des champs vides dans mes 4 cellules
Ces champs vides peuvent être n'importe où
Il y a parfois que 2 ou 3 dates de rentrées

Si bien que la formule me renvoie une erreur dans ce cas !

Y a t-il un moyen de contourner ce problème
 
Re : Ecart le plus petit entre 4 cellules

Re,

Oui il y a moyen, en donnant avec la question un exemple se rapprochant au plus près de celui de ton fichier définitif et en précisant toutes les contraintes à respecter.
 
Re : Ecart le plus petit entre 4 cellules

Bonsoir

Merci pour ton fichier

Cependant, j'ai oublié de préciser qu'il pouvait y avoir qu'une seule date de rentrée, voir pas de date du tout.

Ce qui entraine en conséquence une erreur

J'ai donc rajouté une condition supplémentaire pour qu'il y ait pas de traitement si le nombre de cellules rentrées étaient < 2.

J'ai cependant une autre erreur :
Certaines dates sont entrées avec l'heure ex: 12/09/2010 17:29:56
Comme le format de mes cellules ne font pas apparaitre l'heure, tu n'as pas pu y faire attention.
Si bien que l'écart peut être faussé (en apparence)
Ex: l'écart entre H4 et I4 est de 2 !
Ce n'est pas très grave, mais si on pouvait faire basculer une date après une certaine heure vers le lendemain, cela serait super.
Ex : 12/09/2010 20:00:00 => 13/09/2010

Je te remercie d'ores et déjà pour ton aide.
 
Re : Ecart le plus petit entre 4 cellules

Bonjour,

C'est bien ce que je te disais : et en précisant toutes les contraintes à respecter

Ce qui se passe pour H4-I4 :
renvoie 1 jour 17:29 par la formule : =ENT(I4-H4)&" jour "&TEXTE(MOD(I4-H4;1);"hh:mm"), mais
renvoie 2 au format Nombre à 0 décimales, parce qu'Excel arrondi le résultat à l'affichage.
Modifie I4 en 12/09/2010 07:29:56 et ce sera 1 qui s'affichera.

Que veux-tu voir s'afficher : 1 ou 2

Mais ce n'est pas aussi simple que cela, car tu demandes maintenant, en plus, de faire basculer la date d'un jour après 20:00
Donne sous la pièce jointe en colonne F les résultats que tu souhaites obtenir

Vois d'abord si cocher "Calcul avec la précision au format affiché" sous le menu Outils - Options - Calcul ne répond à ta demande, du moins en partie.

A te lire.
 

Pièces jointes

Re : Ecart le plus petit entre 4 cellules

Bonjour

Excuse moi d'abord pour "et en précisant toutes les contraintes à respecter"

Effectivement je n'avais manifestement pas cerné toutes les contraintes !

Pour les horaires, il ne faut pas se prendre trop la tête
Ce n'est pas très important comme je l'ai dit
Et cela ne figurait pas dans ma demande initiale

J'ai pensé au plus simple faire une conversion de la date par macro lors de la frappe (voir fichier horaire)
Ma macro incrémentera d'un jour toutes les dates dont l'horaire est égale ou > à 20h

Je t'envoie quand même ton fichier initial sur laquelle j'ai modifié la formule pour tenir compte du cas où il y a moins de 2 dates

J'ai précisé colonne <F> le résultat attendu en tenant compte des horaires
Si tu as le temps de voir

Mais je te le redis, je suis déjà très satisfait de l'aide obtenue
 
Re : Ecart le plus petit entre 4 cellules

Bonjour,

Dans le fichier Horaire, la formule en C3 peut être raccourcie comme suit :
=ENT(A3+1/6)
On prend l'entier de la valeur (la date) à laquelle on a ajouté 4 heures (4/24 = 1/6)

En appliquant ce principe sur l'autre fichier tu devrais obtenir les résultats souhaités.
 
Re : Ecart le plus petit entre 4 cellules

Bonjour à tous
Si on peut recourir à VisualBasic :
Code:
[COLOR="DarkSlateGray"][B]Private Sub Worksheet_Change(ByVal Target As Range)
Dim oPlg, oCel As Range
Dim vDat&(), v%
Dim delta&, i&, j&
   With Range("G4:J4") [COLOR="SeaGreen"]'À adapter en fonction des cellules _
                              susceptibles de modifier les données.[/COLOR]
      Set oPlg = Intersect(Target, .Cells)
      If Not oPlg Is Nothing Then
         For Each oCel In Range("G4:J4").Cells
            If Not IsEmpty(oCel) Then
               v = v + 1
               ReDim Preserve vDat(1 To v)
               vDat(v) = CLng(Int(CDbl(oCel.Value) + 1 / 6))
            End If
         Next oCel
         delta = 2147483647
         For i = 1 To v - 1
            For j = i + 1 To v
               delta = WorksheetFunction.Min(delta, Abs(vDat(j) - vDat(i)))
            Next j
         Next i
         Application.EnableEvents = False
         [K4].Value = IIf(v > 1, delta, "")
         Application.EnableEvents = True
      End If
   End With
End Sub[/B][/COLOR]
à placer dans le module de la feuille concernée.​
ROGER2327
#4128


Dimanche 8 Absolu 138 (Absinthe, ci devant Saint Alfred, ST)
29 Fructidor An CCXVIII
2010-W37-3T11:29:44Z
 
- 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

C
Réponses
9
Affichages
1 K
chris58490
C
C
Réponses
2
Affichages
872
carrieth
C
A
Réponses
11
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…