【发布时间】:2021-05-25 11:55:37
【问题描述】:
我的电子表格有 30 多个条件格式规则,我想知道是否可以将它们组合起来。
我附上图片来提供一个想法,但基本上,用户可以通过设置开始/结束日期并选择政策来设置/更改右侧的取消政策 (BC9:BF18)。
然后我使用条件格式来使用此信息为日历着色(日历的每个单元格都设置为其实际日期,因此蓝色的 6 月 1 日单元格实际上包含 01/June/2021,但格式化为仅显示 1)。对于 BC9:BF18 表的每一行,我都有以下规则(例如,对于第一行 [9]):
=AND(E9>=$BC$9,E9<=$BE$9,$BF$9="High") - Change to blue
=AND(E9>=$BC$9,E9<=$BE$9,$BF$9="Standard") - Change to white
=AND(E9>=$BC$9,E9<=$BE$9,$BF$9="Peak") - Change to red
=AND(E9>=$BC$9,E9<=$BE$9,$BF$9) - Change to a set color
10 行 (BC9:BC18) 中的每一行都有 4 条规则,因此有 40 种不同的条件格式。
我现在想补充一点,如果这一天是假期(假期日期将在下表中,比如说 BC30:BC60),那么将字体设置为红色,但保持背景颜色与取消一致政策。
这将需要加载和加载更多的条件格式规则,这些规则需要超越所有旧规则,例如。 =AND(E9>=$BC$9,E9<=$BE$9,$BF$9="High",[OR(E9=$BC$30, E9=$BC$31....)] - Change to blue with red font,有没有人能找到简化这个的方法?
我有一些建议,但我不确定它们是否可行:
(a) 更改顺序以便结束日期无关紧要,下一个公式将覆盖其开始日期
(b) 检查与“高”匹配的所有策略(因此 if(BF9:BF18='High'... 以某种方式获取该开始/结束日期等。
(c) 对于新位(检查日期是否在表 BC30:BC60 中),必须有比检查日期是否匹配 BC30 然后 BC31 然后 BC32 更简单的方法 `=OR(E9=$BC$30,E9 =$BC$31,E9=$BC$32 等
【问题讨论】:
-
如果任何日期和月份名称与您的假期表匹配,为什么不添加条件格式,然后是红色前面。所以你不必重新调整所有代码?
-
是的,但这会否决背景颜色的变化,因此您可以看到这是一个假期,但您无法看到正在使用的取消政策。
-
是的,太糟糕了,它会覆盖。写应用脚本来制定字体颜色会更好,这是您考虑的一部分吗?
-
是的,我尝试过在使用 app-script 更改与假日日期匹配的每个单元格的边框颜色之前,它需要大量编码,因为它需要找到每个日期的单元格引用匹配假日日期,然后循环并更改边界。问题是我想在单独的月表上显示这些日历中的每一个,所以我需要在每个页面上运行所有脚本!
-
您只需要总共八个规则。共享指向电子表格副本的链接,确保将链接的共享权限(创建链接时)设置为“知道链接的任何人...”和“编辑者”。然后在下方评论您已完成此操作,我将尝试转圈并在电子表格中以副本的形式分享它们。
标签: if-statement google-sheets logic conditional-formatting