Új hozzászólás Aktív témák

  • azopi74

    addikt

    válasz TrollBalint #25874 üzenetére

    Hali, na megcsináltam :)

    Algoritmusom a következő:

    1: Jelöljük ki állandóba a normál munkaidőkezdetet és munkaidővéget (B1 és B2 cella) Jelen esetben 9:00 és 17:00, MunkaidőKezdet és MunkaidőZárás

    2: HAtározzuk meg minden napra a normál munkaidőkezdetet és normál munkaidővéget. Ehhez kibővítettem a munkanapos táblát StartWorkingTime és EndWokringTime mezőkkel.

    =[@Day]+MunkaidőKezdet
    =[@Day]+MunkaidőZárás

    3: Határozzuk meg a normál időkezdeteket (StartDayNormalStart és EndDayNormalStart), képleteik:

    =DATE(YEAR([@StartTime]),MONTH([@StartTime]),DAY([@StartTime]))+MunkaidőKezdet

    és

    =DATE(YEAR([@EndTime]),MONTH([@EndTime]),DAY([@EndTime]))+MunkaidőKezdet

    4: Számoljuk össze a teljes munkanapok számát (FullWorkingTime) StartDay és EndDay között. :

    =COUNTIFS(DayType[StartWorkingTime],">="&[StartTime],DayType[EndWorkingTime],"<="&[@EndTime],DayType[Type],"Workday")

    Vagyis azoknak a munkanapoknak a száma, amik a StartTime (kezdőidő) után kezdődtek, a záróidő (EndTime) előtt záródtak

    5. Számoljuk ki a töredék napokat. Ehhez döntsük el, hogy a kezdőidő vagy a záróidő munkaidőbe esek-e? (csak ekkor kell vele fognalkozni):

    IfStartInWorkingTime:

    =COUNTIFS(DayType[StartWorkingTime],"<"&[@StartTime],DayType[EndWorkingTime],">"&[@StartTime],DayType[Type],"Workday")

    Ennek értéke 1 vagy 0 lehet, (TRUE vagy FALSE), ha 1, akkor a kezdőidő munkaidőőben van ,különben nem,

    IfEndInWorkingTime:

    Hasonló logikával:

    =COUNTIFS(DayType[EndWorkingTime],">"&[@EndTime],DayType[StartWorkingTime],"<"&[@EndTime],DayType[Type],"Workday")

    Ezután számoljuk ki a töredéknapokat:

    Első nap töredéknapja (PartDayFirstDay):

    =IF([@IfStartInWorkingTime],[@StartTime]-[@StartDayNormalStart],0)

    Utolsó nap töredéknapja (PartDayLastDay):

    =IF([@IfEndInWorkingTime],[@EndTime]-[@EndDayNormalStart],0)

    6. Adjuk össze a teljes és töredéknapokat, hogy megkapjuk az összes munkaidőt:

    TotalWorkingTime:

    =[@FullWorkingTime]+[@PartDayFirstDay]+[@PartDayLastDay]

    A táblát itt találod.

    [link]

    Ha valami nem OK, írj, javítom a képletet (letesztelni már nem volt időm :))

Új hozzászólás Aktív témák

Hirdetés