使用Excel XLOOKUP函数判断日期是否在表格的两个日期区间内
XLOOKUP多条件日期区间匹配解决方案
你的公式问题出在逻辑与的运算顺序错误,Excel中乘号*的优先级高于比较运算符,原公式会先计算V$3:V$8*[@Datum],而非先判断两个日期条件再做逻辑与。
修正后的XLOOKUP公式
=@XLOOKUP(1, ([@Datum]>=V$3:V$8)*([@Datum]<W$3:W$8), U$3:U$8, "")
关键修正点:
- 给两个条件分别加括号,确保先执行日期比较,再通过
*实现数组逻辑与(布尔值TRUE转1,FALSE转0) - 将返回区域
U$2:$U$8改为U$3:U$8,与条件区域的行号范围保持一致,避免结果错位 - 增加空文本
""作为未匹配时的返回值,避免出现#N/A错误
替代兼容方案:INDEX+MATCH组合
如果你的Excel版本对数组运算支持有限,可使用兼容性更好的写法:
=INDEX(U$3:U$8, MATCH(1, ([@Datum]>=V$3:V$8)*([@Datum]<W$3:W$8), 0))
注意事项
- 确保
V$3:V$8(起始日期列)和W$3:W$8(结束日期列)的日期格式统一,且无无效日期值 - 若存在多个匹配的日期区间,公式会返回第一个匹配的sprint值
内容的提问来源于stack exchange,提问作者Stephan
相关产品推荐
相关产品推荐

