excel怎么判断法定节假日? excel公式自动判定日期是否节假日的技巧
脚本之家
收到提问:excel公式自动判定日期是否节假日?如何通过公式自动判定日期是否节假日,调休的日期也可以自动判定是否节假日(例:2025年1月1日自动判断为节日而非工作日)(可以添加日期的辅助列帮助调整日期是否节假日),如图所示:
依据题主的思路可以使用辅助列,结合函数来实现目标,那么我们可以这样做:
方法一:使用VLOOKUP函数
首先,我们需要将节假日和调休日统一列到辅助列里,假设将E列作为辅助列,可以在B2单元格数据下面的公式:
=IF(ISNA(VLOOKUP(A2,E:E,1,FALSE)),"否","是")
这个公式通过VLOOKUP函数查找A2(日期)中的值是否存在于E列(节假日和调休日)中,借助ISNA返回不存在的情况,使用IF进行判断,并返回对应值,不存在则返回“否”,反之,返回“是”,达到快速自动判定日期是否节假日的效果。
方法二:使用VLOOKUP和TEXT函数
这个方法只需列出调休日在辅助列里,假设将E列作为辅助列,可以在B2单元格数据下面的公式:
=IF(ISNUMBER(VLOOKUP(A2,E:E,1,0)),"是",IF(OR(TEXT(A2,"aaaa")="星期六",TEXT(A2,"aaaa")="星期日"),"是","否"))
这个公式通过VLOOKUP查找A2(日期)中的值是否存在于E列,借助ISNUMBER判断存在的情况,借助if嵌套返回对应值,存在则返回“是”,若不存在,则对TEXT函数返回的值进行判断,是周末的日期,就返回“是”,反之,返回“否”,达到快速自动判定日期是否节假日的效果。
这个方法的方便之处在于通过TEXT函数自动计算出周末日期,不用手动列出周末的日期。
方法三:使用MATCH函数
同样需要事先在辅助列里列出所有的节假日和调休日,假设将E列作为辅助列,可以在B2单元格数据下面的公式:
=IF(ISNA(MATCH(A2, E:E, 0)), "否", "是")
这个公式通过MATCH函数,查找A2(日期)中的值是否存在于E列(节假日和调休日)中,不存在则返回“否”,反之,返回“是”,达到快速自动判定日期是否节假日的效果。
方法四:使用COUNTIF函数
同样需要事先在辅助列里列出所有的节假日和调休日,假设将E列作为辅助列,可以在B2单元格数据下面的公式:
=IF(COUNTIF(E:E,A2)=1,"是","否")
这个公式通过COUNTIF函数计算A2(日期)中的值是否存在于E列(节假日和调休日)中出现的次数,若等于1,则返回“是”,反之,返回“否”,达到快速自动判定日期是否节假日的效果。
以上就是我们分享的四种解决方法,根据自己的具体需求和习惯,选择适合的方法。