前几日作念过一个2024年月份自动考勤表2023年放假与上班判断.xlsx,其中的一个需求是:输入自便一个月份,考勤表能自动识别哪一天是休息日九游会(中国区)集团官方网站,并以蓝色布景标记出来,如下图:
图1 月份考勤表自动识别当月休息日,并自动标记出来
考勤表能自动识别休息日的必须前提是要知谈一年365天,每一天是休息照旧上班,如图2
图2 一年365天上班照旧放假标记
那么一年365天,若何快速判断每一天是休息照旧上班?就要用If函数的多层嵌套(多种情况分支)来判断。
假定双休的情况下,周一至周五需要上班,周末两天是休息的,然则辩论国度法定节日放假,那么就存在周一至周五也可能是休息的,同期因为法定节日放假调休,而导致有的周末也要上班,如下表2024年国度法定节日放假安排。
图3 2024年国度法定节日放假及调休安排
那么,辩论法定节日放假调休安排,就弗成好像地阐明每一天是星期几来判断休息照旧上班。在判断之前,咱们需要将法定节日放沐日历及因为放假将蓝本是周末而调为上班的日历先标记出来。
标记法定节日放沐日历及因为放假将蓝本是周末而调为上班的日历,不错用index+match函数组合或者vlookup函数查询出来作念标记,很好像,表中我照旧标记出来了,不会的不错下载附件看下。
If函数的多分支情况判断,判断条目诞生的话,势必能获取一个笃定的复返,不诞生的话,就要再嵌套if分情况来判断。是以这种多分支情况的判断,咱们一般需要先从迥殊情况入辖下手进行第一个判断。
为了莳植好像,咱们将2024年1月1日这条数据先复制到标题行上头,公式写到G1单位格。
那么本案例中,咱们先看D列:本来是周末,实质调为上班的日历出手。要是D列标记为“上班”,那么这一天确信是需要上班的,要是未作标记,那么就要看C列的标记情况,函数写为=IF(D1="上班","上班",)
图4 阐明D列进行第一层判断:本来是周末,实质调为上班
要是C列的标记为节日,则暗示放假休息,要是未作标记,那么就要看A列的标记情况。C列的标记为节日,因为节沐日字符数皆大于1,是以不错用LEN(C1)>1暗示C列是法定节日放沐日,是以G1公式写稿=IF(D1="上班","上班",IF(LEN(C1)>1,"休",)
图5 阐明C列进行第二层判断:标记为节日,则暗示放假休息
要是A列的标记为节日日历为周末,则是休息日,其余情况上班,其余唯唯独种情况,即日历为周一至周五,不需要再写IF(WEEKDAY(A1,2)<6,”上班”)。G1公式写稿 =IF(D1="上班","上班",IF(LEN(C1)>1,"休",IF(WEEKDAY(A1,2)>5,"休","上班")))。
图5 阐明A列进行第三层判断:标记为节日日历为周末,则是休息日,其余情况上班
注:计较某一天是周几,不错用weekday函数,weekday(日历,2)暗示一周从周一驱动,计较的后果:周一=1,周二=2…周日=7。If(weekday(A1,2)>5,,),暗示要是计较后果是周六、周日,则…,不然…
至此,所有的情况皆照旧判断杀青。
If函数多种情况分支判断公式并不难,但需要去表露其中的判断逻辑。上头咱们讲的是从D列标记驱动判断,那么从C列出手驱动第一个判断,你会了吗
今天的共享即是这些了,但愿能匡助你加深对if函数嵌套的表露。心爱的一又友九游会(中国区)集团官方网站,请点赞、转发。