google-sheets - 基于另一张工作表的 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 列的条件格式规则合并到同一个公式中?还是我应该将此公式添加到具有相应行字母的每一行?
解决方案
回答:
您可以使用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()))
参考:
推荐阅读
- c# - 在 C#.NET 中使用特定模式修剪字符串值
- python-2.7 - 具有不同大小的数组乘法
- vba - 如果在“GetSaveAsFileName”中单击取消按钮,如何结束函数 - VBA 中的对话框
- c# - 显示两个日期时间选择器之间的数据,“条件表达式中的数据类型不匹配”
- db2 - 在 SQLCODE=-181, SQLSTATE=22007, SQLERRMC=0;*N, DRIVER=3.61.75 的 DB2 Sql 错误中面临问题
- android - 实时 admob 广告未在我的设备上显示
- c# - Wpf 样式未完全应用于 ContextMenu
- javascript - Javascript 在 PHP 标记后停止工作
- android - Android Studio:如何在启用 Orchestrator 的 Firebase 中运行测试?
- amazon-web-services - 将现有 AWS Lambda 和 API Gateway 导出到 Cloudformation 模板