Пресек датумских интервала

Један од типичних задатака за корисника Мицрософт Екцел-а. Имамо два распона датума типа „почетак-крај“. Изазов је утврдити да ли се ови опсези преклапају и, ако јесте, за колико дана.

Секу или не?

Почнимо са решавањем питања да ли у принципу постоји пресек интервала? Претпоставимо да имамо следећу табелу радних смена за запослене:

Јасно се види да се радне смене Јарослава и Елене укрштају, али како то израчунати без прибегавања изградњи календарског распореда и визуелне контроле? Функција ће нам помоћи СУМПРОДУЦТ (СУМПРОИЗВОД).

Хајде да убацимо још једну колону у нашу табелу са формулом која даје логичку вредност ТРУЕ ако се датуми пресеку:

Колико дана траје прелаз?

Ако у основи није лако разумети да ли се наши интервали секу или не, али тачно знати колико дана тачно пада у пресек, онда задатак постаје компликованији. Логично, потребно је „пумпати“ чак 3 различите ситуације у једној формули:

  • интервали се не преклапају
  • један од интервала потпуно апсорбује други
  • интервали се делимично секу

С времена на време видим имплементацију овог приступа од стране других корисника који користе гомилу угнежђених ИФ функција итд.

У ствари, све се може лепо урадити помоћу функције МЕДИАН (МЕДИАН) из категорије Статистички.

Ако почетак првог интервала условно означимо као N1, а крај за K1, и почетак другог N2 и крај за K2, онда се у општем смислу наша формула може написати као:

=МЕДИАН(N1;K1+ 1;K2+1)-МЕДИАН(N1;K1+ 1;N2)

Компактан и елегантан, зар не? 😉

  • Како Екцел заправо ради са датумима? Како израчунати број календарских или радних дана између датума?
  • Како направити распоред календара (празници, тренинзи, смене...) у Екцел-у користећи условно форматирање?
  • Провера једног или више услова са ИФ (ИФ) функцијама

Ostavite komentar