Unha das tarefas típicas para un usuario de Microsoft Excel. Temos dous intervalos de datas do tipo "principio-fin". O reto é determinar se estes intervalos se solapan e, de ser así, en cantos días.
Cruzar ou non?
Comecemos por resolver a cuestión de se en principio hai unha intersección de intervalos? Supoñamos que temos unha táboa de quendas de traballo para os empregados como esta:
Vese claramente que as quendas de traballo de Yaroslav e Elena se cruzan, pero como calculalo sen recorrer a construír un calendario e control visual? A función axudaranos SUMPRODUCT (SUMAPRODUTO).
Imos inserir outra columna na nosa táboa cunha fórmula que dea o valor booleano TRUE se as datas se cruzan:
Cantos días é a travesía?
Se fundamentalmente non é fácil entender se os nosos intervalos se cruzan ou non, pero saber exactamente cantos días caen exactamente na intersección, entón a tarefa faise máis complicada. Loxicamente, é necesario "bombear" ata 3 situacións diferentes nunha fórmula:
- os intervalos non se solapan
- un dos intervalos absorbe completamente o outro
- intervalos se cruzan parcialmente
De cando en vez, vexo a implementación deste enfoque por outros usuarios que usan unha morea de funcións IF aniñadas, etc.
De feito, todo se pode facer ben usando a función MEDIANA (MEDIÁN) da categoría Estatístico.
Se designamos condicionalmente o inicio do primeiro intervalo como N1, e o final para K1, e o comezo do segundo N2 e rematar para K2, entón en termos xerais a nosa fórmula pódese escribir como:
=MEDIANO(N1;K1+ 1;K2+1)-MEDIANO(N1;K1+ 1;N2)
Compacto e elegante, non? 😉
- Como funciona realmente Excel coas datas? Como calcular o número de días naturais ou laborables entre datas?
- Como crear un calendario de calendario (vacacións, adestramentos, quendas...) en Excel usando o formato condicional?
- Comprobación dunha ou máis condicións con funcións IF (IF).