如何用Excel函数识别工作日数据集中的日期是否为节假日?

解决工作日表标记节假日的问题
针对你的需求,以下是几种直接可用的Excel函数方案,帮你在工作日表的HLDAY列生成True/False标识:
方法1:COUNTIF函数(最简洁)
假设工作日表的日期列是A列(第一个日期在A2),节假日数据在Sheet2的A列(范围A2:A100,可根据实际调整),在HLDAY列的B2单元格输入公式:
=COUNTIF(Sheet2!$A$2:$A$100, A2)>0
完成后下拉填充即可。
- 逻辑:统计节假日列表中是否存在当前日期,结果大于0说明是节假日,返回
True,否则返回False。 - 注意:用绝对引用
$锁定节假日数据范围,避免下拉公式时范围偏移。
方法2:MATCH+ISNA函数组合
在B2单元格输入:
=NOT(ISNA(MATCH(A2, Sheet2!$A$2:$A$100, 0)))
- 逻辑:
MATCH查找当前日期在节假日列表的位置,找不到返回错误值#N/A;ISNA判断是否为错误值,NOT反转结果,最终找到则返回True,否则False。
修正你之前的VLOOKUP/XLOOKUP用法
如果坚持用VLOOKUP或XLOOKUP,需要将返回结果转换为布尔值,示例:
VLOOKUP版本
=NOT(ISNA(VLOOKUP(A2, Sheet2!$A$2:$A$100, 1, FALSE)))
XLOOKUP版本
=NOT(ISNA(XLOOKUP(A2, Sheet2!$A$2:$A$100, Sheet2!$A$2:$A$100, NA())))
内容的提问来源于stack exchange,提问作者HTTN
相关产品推荐
相关产品推荐

