Један од типичних задатака за корисника Мицрософт Екцел-а. Имамо два распона датума типа „почетак-крај“. Изазов је утврдити да ли се ови опсези преклапају и, ако јесте, за колико дана.
Секу или не?
Почнимо са решавањем питања да ли у принципу постоји пресек интервала? Претпоставимо да имамо следећу табелу радних смена за запослене:
Јасно се види да се радне смене Јарослава и Елене укрштају, али како то израчунати без прибегавања изградњи календарског распореда и визуелне контроле? Функција ће нам помоћи СУМПРОДУЦТ (СУМПРОИЗВОД).
Хајде да убацимо још једну колону у нашу табелу са формулом која даје логичку вредност ТРУЕ ако се датуми пресеку:
Колико дана траје прелаз?
Ако у основи није лако разумети да ли се наши интервали секу или не, али тачно знати колико дана тачно пада у пресек, онда задатак постаје компликованији. Логично, потребно је „пумпати“ чак 3 различите ситуације у једној формули:
- интервали се не преклапају
- један од интервала потпуно апсорбује други
- интервали се делимично секу
С времена на време видим имплементацију овог приступа од стране других корисника који користе гомилу угнежђених ИФ функција итд.
У ствари, све се може лепо урадити помоћу функције МЕДИАН (МЕДИАН) из категорије Статистички.
Ако почетак првог интервала условно означимо као N1, а крај за K1, и почетак другог N2 и крај за K2, онда се у општем смислу наша формула може написати као:
=МЕДИАН(N1;K1+ 1;K2+1)-МЕДИАН(N1;K1+ 1;N2)
Компактан и елегантан, зар не? 😉
- Како Екцел заправо ради са датумима? Како израчунати број календарских или радних дана између датума?
- Како направити распоред календара (празници, тренинзи, смене...) у Екцел-у користећи условно форматирање?
- Провера једног или више услова са ИФ (ИФ) функцијама