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

谷歌表格条件格式:基于单单元格值高亮含间隔空行的多行

问题原因

你之前的公式只能高亮首列单元格,核心问题是公式中引用了动态列判断:INDIRECT(ADDRESS(ROW()-1, COLUMN())) 会根据当前所在列判断对应列的上一行内容,非A列的单元格判断的是自身列的上几行,自然匹配不到训练类型值,所以只有A列生效。
另外你之前写的 $A1 - 1= "Upper" 逻辑错误,减号是数值运算符,不能用来取上一行的单元格内容。

基础方案(默认高亮训练行+后续2行,共3行)

不需要脚本,直接按以下步骤设置条件格式即可:

  1. 选中你需要应用高亮规则的整个数据区域,比如 A1:Z1000(根据你的实际数据范围调整)
  2. 点击顶部菜单栏「格式」→「条件格式」,右侧弹出条件格式设置面板
  3. 「设置格式的单元格规则」下拉选择「自定义公式是」
  4. 输入以下公式,再设置你想要的高亮填充色,点击完成即可:
=OR(NOT(ISBLANK($A1)), NOT(ISBLANK(INDEX($A:$A, MAX(ROW()-1, 1)))), NOT(ISBLANK(INDEX($A:$A, MAX(ROW()-2, 1)))))

这个公式的逻辑是:无论当前在第几列,都只判断A列的当前行、上一行、上两行是否存在训练类型值,只要有一个存在就触发高亮,自动覆盖整行。

可选扩展(支持部分条目仅高亮2行)

如果你不需要加辅助列,只要针对特定训练类型(比如示例里的Static Holds)高亮2行,可以用以下公式替换上面的自定义公式:

=LET(
  latest_train_row, XMATCH(TRUE, NOT(ISBLANK($A$1:$A1)), 0, -1),
  offset, ROW() - latest_train_row,
  offset < IF(INDEX($A:$A, latest_train_row)="Static Holds", 2, 3)
)

如果后续有更多需要只高亮2行的训练类型,只要在IF判断里新增对应规则即可,比如:
IF(OR(INDEX($A:$A, latest_train_row)="Static Holds", INDEX($A:$A, latest_train_row)="其他类型"), 2, 3)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:24:02