【问题标题】:Google Sheets - How to allow multiple matches in conditional formattingGoogle 表格 - 如何在条件格式中允许多个匹配项
【发布时间】:2021-06-30 13:21:45
【问题描述】:

Google 表格是否有可能不停止条件格式规则,即使在第一次匹配后也是如此?

问题:

我有一列数值,其文本根据其值进行颜色编码,例如如果小于 10k,则为黑色,如果 10k 到小于 20k,则为绿色,如果介于 20k 和 30k 之间,则为蓝色,依此类推。

如果受让人是 Bob,则相同的单元格值将 文本格式 更改为粗体,如果是 Alice,则为斜体,如果是 Foo,则为下划线。 (我们应该在条件格式中使用自定义公式来做到这一点。)

相同的单元格值会改变背景颜色,具体取决于今天的日期与截止日期之间的距离。 (如上,使用自定义公式。)

当然,条件格式设计会停止,然后在遇到第一个匹配规则时应用格式。可以有一个解决方法 / hack吗?我们当然可以单独编写由AND 函数绑定的所有匹配项,但这将编写用于排列可能性的公式。

【问题讨论】:

  • 我遇到过几次这种情况,我能找到的唯一解决方案是为每个可能的条件编写条件格式。
  • 除了您已经说过的以外,我认为没有解决方法。您可以考虑通过Help > Help Sheets improve 提出请求。

标签: google-sheets google-sheets-formula spreadsheet conditional-formatting


【解决方案1】:

我不确定您是否熟悉,但您可以使用 Google Script 语言(基于 JavaScript)在大多数 Google 产品的后端编写自定义脚本。使用它,您可以以编程方式构建条件格式规则。 Here is the link to the documentation。您当然需要将下面的代码更改为您需要的代码,这是一个粗略的想法:

let sheet = SpreadsheetApp.getActiveSheet();
let range = sheet.getRange("A1:B3");
let rules = sheet.getConditionalFormatRules();

// this is the loop to make all of the rules
let maxVal = 1000;
low = 1;
high = 10;
let colors = ['red','orange','yellow','green','blue','purple'];
for (let i=0; i < colors.length; i++) {
    let rule = SpreadsheetApp.newConditionalFormatRule()
        .whenNumberBetween(low,high)
        .setBackground(colors[i])
        .setRanges([range])
        .build();
    rules.push(rule);

//changes the low and high for the loop
low = high + 1;
high = high + 10;

sheet.setConditionalFormatRules(rules);

代码将为每个间隔设置不同的背景颜色。您可以根据需要扩展代码,而无需手动设置所有规则。

【讨论】:

    猜你喜欢
    • 2012-08-28
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    相关资源
    最近更新 更多