如何简洁判断Excel列日期是否落在任意日期间隔及匹配日期高亮
问题解答
一、简化区间判断公式
根据你使用的Excel版本不同,有两类更简洁的写法,区间范围按你的需求统一锁定即可,公式写入D1后下拉填充即可适配所有A列行:
如果你使用Excel 365/2021及以上版本
直接用数组逻辑搭配OR函数即可,无需写多个AND条件:=OR((A1>$B$1:$B$15)*(A1<$C$1:$C$15))
公式说明:乘法运算会自动对每行B、C列的条件做与判断,只要有任意一行的条件同时成立,OR就会返回TRUE。如果要排除B/C列为空的无效区间,调整为:=OR(($B$1:$B$15<>"")*($C$1:$C$15<>"")*(A1>$B$1:$B$15)*(A1<$C$1:$C$15))
如果你使用2019及以下旧版本Excel
旧版本不支持动态数组运算,用SUMPRODUCT函数实现相同逻辑:=SUMPRODUCT(--(A1>$B$1:$B$15),--(A1<$C$1:$C$15))>0
公式说明:--会把布尔值(TRUE/FALSE)转为1/0,SUMPRODUCT会对每行两个判断的乘积求和,只要有任意一行满足两个条件,求和结果就≥1,最终返回TRUE。排除空区间的版本:=SUMPRODUCT(--($B$1:$B$15<>""),--($C$1:$C$15<>""),--(A1>$B$1:$B$15),--(A1<$C$1:$C$15))>0
注:如果你实际的区间是存放在C、D列(和你贴的旧公式引用一致),把上面公式里的B、C列引用替换为C、D即可。
二、A列日期标红设置
用条件格式即可实现,操作步骤如下:
- 选中A列所有需要设置格式的日期单元格(例如A1:A12)
- 点击菜单栏「开始」→「条件格式」→「新建规则」
- 规则类型选择「使用公式确定要设置格式的单元格」
- 在公式输入框中填写
=D1=TRUE(此处D1为相对引用,不要加$符号,会自动匹配每行对应的D列值) - 点击「格式」按钮,在字体选项卡中选择颜色为红色,点击确定保存规则即可
内容的提问来源于stack exchange,提问作者Merc
相关产品推荐
相关产品推荐

