Ecart entre plusieurs valeurs

Résolu/Fermé
Rombo - 5 juil. 2018 à 11:17
 Rombo - 5 juil. 2018 à 17:09
Bonjour,

J'ai une liste de date de contrôle en fonction d'un établissement.
J'aimerais savoir si au cours de l'année écoulé 2 contrôles ont été réalisé avec un maximum de 60 jours de différence.
Le problème dans mon cas, c'est qu'il peut y avoir jusqu'à 12 contrôles pour un établissement, donc je n'arrive pas à trouver de formule capable de comparer tous les possibilités à savoir : écart entre date 1 et date 2, écart entre date 2 et date 3, écart entre date 3 et date 4 ... pour savoir si je répond à cette exigence de 2 contrôle de moins de 60 jours sur l'année écoulé.
Question subsidiaire, j'aimerai être capable de savoir à quelle date a été fait le dernier contrôle répondant à cette condition. Ce dernier contrôle n'est pas nécessairement le dernier contrôle réalisé sur l'établissement.

Je remercie d'avance les bonnes âmes
A voir également:

1 réponse

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
5 juil. 2018 à 11:50
Bonjour
sans le modèle, ça ne va pas être facile de vous donner quelque chose d'utile
pouvez vous déposer un modèle ici, en bidouillant si besoin les données confidentielles:
http:mon-partage.fr
et revenir colller le lien créé sur le site
ajoutez y quelques notes explicatives si besoin
à vous lire
crdlmnr
0
Bonjour,

Le problème c'est que je n'ai pas d'accès au plateforme de partage.. sécurité informatique.
En gros, la base se résume à deux colonnes :
Etablissement 1 15/02/2018
Etablissement 2 16/04/2018
Etablissement 3 19/05/2018
Etablissement 1 23/05/2018
Etablissement 2 27/06/2019
Etablissement 4 12/07/2018
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
5 juil. 2018 à 13:02
si vos dates ne sont pas classées, ça va être un peu plis coton, mais dans un premier
temps, on va admettre que le 27/06/2019 de votre liste est une faute de frappe
et dans ce cas si votre liste commence en ligne 2 avec en A les codes et en B les dates, commencez en ligne 3 (la ligne 2 étant la 1° date)

=SI(NB.SI($A$2:A2;A3);B3-MAX(SI($A$2:A2=A3;$B$2:B2));"")

attention d=formule matricielle à entrer avec la touche enter en maintenant les touches ctrl et shift enfoncées
(elle s'affiche automatiquement entre accolades dans la barre de formule)
attention aux signes $ aux bon endroits
en la tirant sur la hauteur du champ, vous aurez à chaque ligne la période entre la date sur la ligne et la date la plus récente précédente.*
vous pouvez éventuellement placer une MFC sur cette colonne pour surligner les écarts > que 60

ou rajouter une condition dans la formule pour ne signaler que ceux ci
=SI(NB.SI($A$2:A2;A3);SI(B3-MAX(SI($A$2:A2=A3;$B$2:B2))<=60;"";B3-MAX(SI($A$2:A2=A3;$B$2:B2)));"")

crdlmnt
0
Merci de votre retour.

J'ai adapté mon fichier depuis en passant par un feuille "base" et une feuille avec 1 ligne unique par établissement pour faire un récap.
Dans mon onglet base, j'ai appliqué un formule
=SIERREUR(SI([@DateCreation]-MAX(SI($C$1:C1=[@RaisonSociale];$G$1:G1;""))=[@DateCreation];"";[@DateCreation]-MAX(SI($C$1:C1=[@RaisonSociale];$G$1:G1;"")));"")

où C présente les dates des évènements et G les noms des établissements.
Cette formule me renvoie un "Délai depuis le dernier contrôle".

Ensuite dans ma feuille récap, j'ai appliqué la formule :
=si(MAX(SI((Tableau1[RaisonSociale]=Tableau2[RaisonSociale])*(Tableau1[DELAI DEPUIS DERNIER CONTRÔLE]<60),Tableau1[DateCreation],""""))=""0"",""NON REALISE"",MAX(si((Tableau1[RaisonSociale]=Tableau2[RaisonSociale])*(Tableau1[DELAI DEPUIS DERNIER CONTRÔLE]<60),Tableau1[DateCreation],"""")))"

qui me donne la valeur maximum "DateCreation" lorsque le "delai depuis le dernier contrôle" est < 60 jours et l'établissement correspond entre tableau 1 (base) et tableau 2 (récap).

Sur un autre sujet, c'est cette seconde formule qui marche convenablement lorsque je l'a fait manuellement mais qui plante ma vba (erreur 1004, impossible de définir la propriété FormulaArray de la classe Range)

le code est :
Selection.FormulaArray = _
"=IF(MAX(IF((Tableau1[RaisonSociale]=[@RaisonSociale])*(Tableau1[DELAI DEPUIS DERNIER CONTRÔLE]<60),Tableau1[DateCreation],""""))=""0"",""NON REALISE"",MAX(IF((Tableau1[RaisonSociale]=[@RaisonSociale])*(Tableau1[DELAI DEPUIS DERNIER CONTRÔLE]<60),Tableau1[DateCreation],"""")))"

Si jamais quelqu'un à une idée de ce qui bloque, je suis preneur.
0