If函数很浮浅?多层嵌套判断每天休息照旧上班,你会吗
前几日作念过一个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函数嵌套的交融。心爱的一又友,请点赞、转发。 |