Excel WORKDAY函数判定工作日全返回FALSE的批量解决方法
问题描述
现有跨度2年的时序数据,需识别各日期是否为工作日,部分数据样例如下:
13/6/2019 0.125 0.08625 0.325243 0.086549 0.227958 14/6/2019 0.166667 0.129986 0.333958 0.091333 0.222882 15/6/2019 0.125 0.089597 0.205069 0.010063 0.138368 16/6/2019 0.125 0.047264 0.238396 0.078625 0.06 17/6/2019 0.166667 0.086486 0.325958 0.088458 0.223771 18/6/2019 0.125 0.09125 0.411299 0.094 0.260806 19/6/2019 0.166667 0.09775 0.346493 0.092326 0.245431 20/6/2019 0.125 0.096833 0.344306 0.094542 0.240028 21/6/2019 0.166667 0.06125 0.312299 0.079965 0.209965 22/6/2019 0.125 0.076667 0.304125 0.076542 0.156271 23/6/2019 0.125 0.007083 0.187125 0.008875 0.114563 24/6/2019 0.159722 0.090674 0.337708 0.094097 0.232764
遇到的异常情况:
- 新增列使用
WORKDAY函数做工作日判定时,所有结果均返回FALSE,提前将日期所在单元格设置为日期格式后问题仍存在。 - 异常特征:初始状态下日期内容靠单元格左侧对齐,函数无法识别;双击对应单元格、不修改内容直接按回车后,日期自动靠右对齐,
WORKDAY函数即可正常返回TRUE。 - 因数据量较大,无法逐格双击回车处理,需要批量解决的可行方案。
批量解决方案
方案1:分列功能转换(操作最快,零公式)
- 选中日期所在的整列数据
- 点击顶部菜单栏「数据」选项卡,选择「分列」
- 弹出的向导前两步直接点「下一步」跳过,第三步列数据格式选择「日期」,右侧下拉框选择
DMY(日/月/年)匹配现有数据格式 - 点击「完成」,整列文本格式日期会一次性转为Excel可识别的标准日期,所有日期函数可直接正常计算。
方案2:辅助列公式转换(适合保留原始数据的场景)
在日期列旁插入空白辅助列,输入公式:=DATEVALUE(A1)
(公式中A1为对应行的日期单元格,根据实际列位置调整引用即可)
- 公式下拉填充整列,即可返回标准日期序列值
- 将辅助列设置为需要的日期格式,复制辅助列后右键选择「值粘贴」覆盖原日期列即可。
方案3:选择性粘贴运算转换
- 在任意空白单元格输入数字
1,选中该单元格按Ctrl+C复制 - 选中所有待转换的日期单元格,右键点击「选择性粘贴」
- 「运算」分类下选择「乘」,点击确定,所有文本格式日期会自动转为可识别的标准日期。
验证技巧:Excel默认规则下,数值、日期类内容自动靠右对齐,文本类内容自动靠左对齐,转换完成后可通过对齐状态快速判断是否生效。
内容的提问来源于stack exchange,提问作者CHUN WING POON
相关产品推荐
相关产品推荐

