Obtenir la date à partir de laquelle deux périodes se chevauchent

maxime.crml

XLDnaute Nouveau
Bonsoir à tous,

Je cherche une âme charitable (ou plusieurs) qui saurait m'aider sur mon problème de chevauchement de date.

Contexte : J'ai un classeur excel qui contient des périodes d'indisponibilité pour des centrales électriques en France (par exemple, quand il y a une maintenance, une grève, etc.), il se peut qu'une centrale tourne temporairement au ralentit ou soit même arrêté.

Variables :
  1. Mise à jour : La date de mise à jour (date à laquelle le producteur a signalé son indisponibilité)
  2. Début indispo : La date de début d'indisponibilité (date à laquelle la centrale en question sera au ralentit ou arrêtée)
  3. Fin indispo : La date de fin d'indisponibilité
  4. Nom de l'unité : Le nom de l'unité de production (= la centrale)
  5. Puissance nominale : La puissance nominale (en MW de la centrale)
  6. Puissance disponible restante : La puissance disponible restante pendant l'indisponibilité (en MW)
Problème : Certaines périodes d'indisponibilité se chevauchent. Si je souhaite calculer la puissance totale indisponible à une période t, il se peut que je compte plusieurs fois des puissances indisponibles alors qu'il s'agit de la même centrale... Je dois donc gérer ce problème de chevauchement ex-ante.

Ce que j'ai déjà fait : Pas mal de choses en fait, les données ici sont déjà passées dans un algorithme. Pour le chevauchement, j'ai réussi à identifier les observations pour lesquelles la période d'indisponibilité chevauche celle d'une autre observation pour une même centrale mise à jour plus récemment... je ne sais pas si c'est très clair, mais la formule (ci-dessous) est déjà insérée dans une 7e variable "OVERLAP" dans la classeur ci-joint.

VB:
=SI(SOMMEPROD((B2<$C$2:$C1043)*(C2>$B$2:$B1043)*(D2=$D$2:$D1043)*(A2<=$A$2:$A1043))>1;1;0)

Ce que je souhaite faire : Obtenir la date (format jj/mm/yyyy HH:MM) à partir de laquelle l'observation i chevauche l'observation j (plus récente pour la même centrale). Sachant qu'il peut y avoir plusieurs i et plusieurs j... Voir le carré rouge sur le schéma ci-dessous.

1027908


Ça doit pas être bien sorcier mais je cale un peu là...

Merci d'avance ! :)

Edit 1 : J'ai ajouté un second fichier (chevauchementTEST2) afin d'isoler un exemple particulier du problème.
Edit 2 : Ci-dessous un screenshot de la situation initial et du résultat souhaité

1027916
 

Pièces jointes

  • chevauchementTEST.xlsx
    89 KB · Affichages: 6
  • chevauchementTEST2.xlsx
    19.4 KB · Affichages: 12
Dernière édition:

maxime.crml

XLDnaute Nouveau
Petit up : Je pense avoir trouvé une solution (un peu bancale je trouve), mais ça marche (code pour le fichier chevauchementTEST2, cellule H2) :

VB:
=MIN(SI($D$2:$D$5=D2;SI($B$2:$B$5>B2;SI($B$2:$B$5<C2;SI($G$2:$G$5=0;$B$2:$B$5)))))

Si vous avez une autre idée, quelque chose de plus efficace, je suis preneur.
Bonne journée à tous !
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 495
Membres
112 765
dernier inscrit
SIDIANW