前几日作念过一个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函数嵌套的领会。心爱的一又友,请点赞、转发。
