如何实现基于含日期范围与单独日期单元格的多单元格条件格式
谷歌表格日期混合格式条件格式高亮方案
适用场景
原公式=ArrayFormula(OR((SUBSTITUTE(SPLIT($C2, CHAR(10)), ".", "/")*1)=G$1))仅支持C列单元格内存储多个单独日期的高亮场景,以下方案可同时兼容C列单元格同时包含日期范围+单独日期的高亮需求。
实现步骤
- 选中需要应用高亮的目标范围:
G2:Z(可根据你实际的日期列范围调整) - 依次点击顶部菜单栏「格式」→「条件格式」,在右侧弹出的规则设置面板中,规则类型选择「自定义公式为」
- 输入如下自定义公式:
=ArrayFormula(OR(BYROW(SPLIT($C2,CHAR(10)),LAMBDA(seg,IF(ISERROR(SEARCH("-",seg)),SUBSTITUTE(seg,".","/")*1=G$1,LET(s,SUBSTITUTE(SPLIT(seg,"-"),".","/")*1,G$1>=INDEX(s,1,1)&&G$1<=INDEX(s,1,2))))))
- 设置你需要的高亮填充色、文字样式等,点击保存即可生效
公式逻辑说明
- 先用
SPLIT($C2,CHAR(10))将C列单个单元格内的多行内容拆分为独立的日期/日期范围条目 - 遍历每个拆分后的条目:
- 若条目不包含
-,判定为单独日期:将日期中的.替换为/后转为标准日期格式,和表头对应列的日期G$1匹配 - 若条目包含
-,判定为日期范围:先按-拆分出起止日期,同样做分隔符替换和日期格式转换后,判断表头对应列的日期是否落在该区间内
- 若条目不包含
- 只要任意一个条目匹配成功,就触发条件格式高亮
注意事项
- 确保G1:Z1的表头为标准日期格式,而非文本格式,否则会出现匹配失败的问题
- C列的日期需保持「年.月.日」或「年/月/日」的格式,公式已兼容两种分隔符,无需手动替换
内容的提问来源于stack exchange,提问作者qazamy
相关产品推荐
相关产品推荐

