Пресичащи се интервали от дати

Една от типичните задачи за потребител на Microsoft Excel. Имаме два диапазона от дати от типа "начало-край". Предизвикателството е да се определи дали тези диапазони се припокриват и ако да, с колко дни.

Припокриване или не?

Нека започнем с решаването на въпроса дали има пресичане на интервали по принцип? Да предположим, че имаме таблица на работните смени на служителите по следния начин:

пресичащи

Ясно се вижда, че работните смени на Ярослав и Елена се пресичат, но как да се изчисли това, без да се прибягва до изграждане на календарен график и визуален контрол? Функцията ще ни помогне ПРОДУКТ .

Нека вмъкнем в нашата таблица още една колона с формула, която връща логическата стойност TRUE в случай на пресичане на дати:

интервали

За колко дни е пресичането?

Ако по същество не е лесно да се разбере дали нашите интервали се пресичат или не, но да се знае точно колко дни попадат в кръстовището, тогава задачата се усложнява. Логично казано, необходимо е да се "изпомпват" цели 3 различни ситуации в една формула:

  • интервалите не се пресичат
  • един от интервалите напълно поглъща другия
  • интервалите частично се припокриват
От време на време виждам прилагането на подобен подход при други потребители с помощта на куп IF функции, вложени една в друга и т.н.

превод руски английски

Ако конвенционално обозначим началото на първия интервал за Н1, и краят за K1, и началото на втората за Н2 и краят за K2, тогава в общ вид нашата формула може да бъде записана като:

Компактен и елегантен, нали?;)