You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于公式IF(WEEKDAY(VALUE(D159)=1), D159-3)的语法与功能问询

问题分析与修正方案

首先,你的原公式IF(WEEKDAY(VALUE(D159)=1), D159-3)确实存在逻辑错误,会导致函数无法实现预期功能,原因如下:

核心错误点

WEEKDAY函数的参数要求是日期或数值类型,而你把VALUE(D159)=1这个逻辑判断直接作为参数传入——这个判断会返回布尔值TRUE或FALSE,在Excel里TRUE等价于1,FALSE等价于0。WEEKDAY(1)默认返回1(对应周日,取决于函数默认参数规则),WEEKDAY(0)则会返回错误值,完全偏离了你要判断D159是否为周一的需求。

结合你的场景修正公式

你的需求是:当D159为周一(因周一为节假日,需返回往前推3天的周五),否则返回原日期(原公式未定义else分支,默认会返回FALSE)。

正确写法应该把WEEKDAY的计算结果和“周一”对应的数值做比较,将判断放在IF的条件位:

IF(WEEKDAY(D159,2)=1, D159-3, D159)
  • 这里WEEKDAY的第二个参数2是关键:它让函数返回规则变为「1=周一,7=周日」,刚好匹配你的判断逻辑。
  • 如果D列的日期是文本格式(而非Excel可识别的日期值),才需要用VALUE转换,公式调整为:
IF(WEEKDAY(VALUE(D159),2)=1, VALUE(D159)-3, VALUE(D159))

验证效果

比如D159是2024-05-13(周一),WEEKDAY(D159,2)返回1,条件成立,公式返回2024-05-10(周五),完全符合你的需求。

内容的提问来源于stack exchange,提问作者Nooks12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 16:53:14