Intersezione di intervalli di date

Una delle attività tipiche per un utente di Microsoft Excel. Abbiamo due intervalli di date del tipo "inizio-fine". La sfida è determinare se questi intervalli si sovrappongono e, in tal caso, di quanti giorni.

Intersecare o no?

Iniziamo risolvendo la domanda se in linea di principio esiste un'intersezione di intervalli? Supponiamo di avere una tabella dei turni di lavoro per i dipendenti come questa:

Si vede chiaramente che i turni di lavoro di Yaroslav ed Elena si intersecano, ma come calcolarlo senza ricorrere alla costruzione di un calendario e al controllo visivo? La funzione ci aiuterà MATR.SOMMA.PRODOTTO (SOMMAPRODOTTO).

Inseriamo un'altra colonna nella nostra tabella con una formula che restituisce il valore booleano VERO se le date si intersecano:

Quanti giorni è la traversata?

Se fondamentalmente non è facile capire se i nostri intervalli si intersecano o meno, ma sapere esattamente quanti giorni cadono esattamente nell'intersezione, allora il compito diventa più complicato. Logicamente, è necessario “pompare” ben 3 diverse situazioni in una formula:

  • gli intervalli non si sovrappongono
  • uno degli intervalli assorbe completamente l'altro
  • gli intervalli si intersecano parzialmente

Di tanto in tanto, vedo l'implementazione di questo approccio da parte di altri utenti che utilizzano un sacco di funzioni SE annidate, ecc.

In effetti, tutto può essere fatto magnificamente usando la funzione MEDIANA (MEDIANO) dalla categoria Statistico.

Se designiamo condizionatamente l'inizio del primo intervallo come N1, e la fine per K1, e l'inizio del secondo N2 e finisci per K2, allora in termini generali la nostra formula può essere scritta come:

=MEDIANO(N1;K1+1;K2+1)-MEDIANA(N1;K1+1;N2)

Compatto ed elegante, vero? 😉

  • Come funziona effettivamente Excel con le date? Come calcolare il numero di giorni di calendario o lavorativi tra le date?
  • Come creare un calendario (vacanze, corsi di formazione, turni...) in Excel utilizzando la formattazione condizionale?
  • Verifica di una o più condizioni con le funzioni IF (IF).

Lascia un Commento