首页 > 解决方案 > 基于另一张工作表的 Google 表格条件格式

问题描述

我建立了一个谷歌电子表格来跟踪每个月某些商品的价格。不同的项目显示在第 3:30 行。不同的零售商显示在 C:M 列中。每个月都显示在不同的工作表中。我想在前一个月将单元格 C3 与单元格 C3 匹配(例如),如果价格上涨,则为红色,如果价格下跌,则为绿色,如果价格相同,则保持白色。我想为每个单元格 C3:M30 这样做。

我已经设法找到一个公式来匹配单元格 C3 到 C3,然后单元格 C4 到 C4 等等,直到单元格 C30。这是我使用的公式:

=C3>INDIRECT("OKTOBER 2020!C"&ROW())

这适用于 C 列,但我找不到将 D:M 列合并到此公式中的方法。有没有办法将 D:M 列的条件格式规则合并到同一个公式中?还是我应该将此公式添加到具有相应行字母的每一行?

标签: google-sheetsconditional-formatting

解决方案


回答:

您可以使用ARRAYFORMULA.

公式:

=ARRAYFORMULA(C3:M30>INDIRECT("OKTOBER 2020!"&SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")&ROW()))

这个公式的概要:

  • 使用相对引用创建ADDRESS具有 1 行的单元格,即当前列索引。
  • 替换硬编码的行号1以提取列字母
  • 使用提取的列字母 current 构造对当前单元格的间接引用ROW(),并将其附加到字符串OKTOBER 2020!
  • 检查此单元格是否大于当前单元格
  • 在 range 上运行整个公式C3:M30。如有必要,这可以扩展以覆盖其他单元格。

此公式检查价格是否上涨,条件格式应如此反映。当价格下降或保持不变时,您也可以通过更改初始比较运算符来执行此操作:

降价:

=ARRAYFORMULA(C3:M30<INDIRECT("OKTOBER 2020!"&SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")&ROW()))

价格不变:

=ARRAYFORMULA(C3:M30=INDIRECT("OKTOBER 2020!"&SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")&ROW()))

参考:


推荐阅读