Google Sheets中如何将单元格与同列上一个非空值对比并设条件格式
解决方案
前提假设
假设你的价格数据在A列,A1是表头,实际数据从A2开始。
1. 设置「价格上涨(红色)」的条件格式
- 选中需要应用格式的单元格区域(比如A2:A)
- 打开条件格式,选择「新建规则」→「使用公式确定要设置格式的单元格」
- 输入公式:
=A2>INDEX(A$1:A1,MAX(ROW(A$1:A1)*(A$1:A1<>""))) - 设置格式为红色字体/填充(按需选择)
2. 设置「价格下跌(绿色)」的条件格式
- 同样选中目标区域,新建规则,使用公式:
=A2<INDEX(A$1:A1,MAX(ROW(A$1:A1)*(A$1:A1<>""))) - 设置格式为绿色字体/填充(按需选择)
公式说明
A$1:A1:锁定当前单元格上方的区域,随着单元格下移,该区域会动态扩展到当前单元格的上一行ROW(A$1:A1)*(A$1:A1<>""):为非空单元格标记对应的行号,空单元格会返回0MAX(...):提取上方最近的非空单元格的行号INDEX(...):根据行号获取对应的价格值,再和当前单元格数值对比
注意事项
- 若数据不在A列,将公式中的A替换为对应列字母即可
- 第一行数据(A2)无上方非空单元格,不会触发任何格式,符合逻辑
内容的提问来源于stack exchange,提问作者Enic
相关产品推荐
相关产品推荐

