让IF嵌套更简单之二 (Excel新增函数Switch)
2021-12-22阅读 267

Excel 365Excel 2019版本上的新成员SWITCH函数,其实是多条件判断函数,它与指定的公式或值进行比较,输出相应的结果。

日常工作一周是五个工作日,一般按周一至周五计算,而需要连续生产的企业(像汽车制造、食品加工、采油、木材加工等),或者服务业(如零售业、物流运输、住宿餐饮等)其员工的工作日并非周一至周五,如果标记此类的工作日或休息日,可通过日期函数WeekdaySwitch函数完成。

语法:

SWITCH(要转换的值, 要匹配的值1...[2-126], 如存在匹配项1...[2-126]需返回的值, 如不存在匹配需返回的值)

案例:某销售服务行业员工A,每周二、周三休息,现标记其近期工作日,以安排日程。

首先看WEEKDAY 函数:

WEEKDAY(serial_number,[return_type]),返回对应于某个日期的一周中的第几天。默认情况下,天数是 1(星期日)到 7(星期六)范围内的整数。

  • Serial_number必需。一个序列号,代表尝试查找的那一天的日期。应使用DATE函数输入日期,或者将日期作为其他公式或函数的结果输入。例如,使用函数DATE(2008,5,23)输入2008523日。如果日期以文本形式输入,则会出现问题。
  • Return_type可选。用于确定返回值类型的数字。

 

Return_type

返回的数字

1 或省略

数字 1(星期日)到 7(星期六)。 Microsoft Excel 早期版本。

2

数字 1(星期一)到 7(星期日)。

3

数字 0(星期一)到 6(星期日)。

11

数字 1(星期一)到 7(星期日)。

12

数字 1(星期二)到数字 7(星期一)。

13

数字 1(星期三)到数字 7(星期二)。

14

数字 1(星期四)到数字 7(星期三)。

15

数字 1(星期五)到数字 7(星期四)。

16

数字 1(星期六)到数字 7(星期五)。

17

数字 1(星期日)到 7(星期六)。

很显然,本例Weekday函数的参数选择14

 

其次,SWITCH 函数:

=SWITCH(要转换的值, 要匹配的值1...[2-126], 如存在匹配项1...[2-126]需返回的值, 如不存在匹配需返回的值)

分解 SWITCH 函数的参数

本案例先计算出正常日期的周序号,公式如下:=WEEKDAY(A2,2)计算出工作日的序号。

如将周序号转换为其工作日的周数,最好创建一个区域来管理休息日与工作日对比,如下图(G2:H8)。然后,在D2单元格添加如下公式:

=SWITCH(C2,$G$2,$H$2,$G$3,$H$3,$G$4,$H$4,$G$5,$H$5,$G$6,$H$6,$G$7,$H$7,$G$8,$H$8)

=SWITCH(WEEKDAY(A2,2),$G$2,$H$2,$G$3,$H$3,$G$4,$H$4,$G$5,$H$5,$G$6,$H$6,$G$7,$H$7,$G$8,$H$8)

其实,上述的分类功能可以使用IF函数嵌套或IFS函数完成,而SWITCH在一定程序上可以替代了这部分功能,并且在阅读上更加清晰明了。