【问题标题】:Failing to create 3 separate Colour scale ranges in Google Sheets conditional formatting无法在 Google 表格条件格式中创建 3 个单独的色阶范围
【发布时间】:2020-12-27 05:05:29
【问题描述】:

所以我正在尝试创建 3 个单独的色标,以便 0-1 范围内的数字从红色到白色变为(比如说)绿色,2-5 从红色到白色变为青色,6-90 变为从红色到白色到紫色。其目的是表明接近 0、2 和 6 的值在其各自范围内都是“坏”的,而接近每个相应范围顶部的值是“好”。

我一开始只是去:

条件格式-> 色标-> 选择最小点、中点和最大点数以及颜色。 -> 向下滚动 -> 添加另一个规则

...直到我有了我的 3 条规则。这一切看起来都行得通,因为范围不重叠。

不幸的是,输入到定义范围内的所有数字仅根据其中一个规则进行格式化。所以例如。第一次尝试,0-70之间的数字都是红色的,70-90之间的数字逐渐变成紫色。

我尝试根据此处给出的示例在脚本(我完全不熟悉)中再次构建它:https://developers.google.com/apps-script/reference/spreadsheet/condit...,它似乎与我第一次尝试的结果完全相同,所以现在所有数字都根据值 0-1 的规则进行格式化。所以即使例如。 50,在其范围内应该是白色的,是完全绿色的。

这是我的脚本尝试,如果有人可以帮助我使其工作,我将非常感激。

function myFunction() {

var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("E3:BR500");
var rule = SpreadsheetApp.newConditionalFormatRule()
.whenNumberBetween (6,90)
    .setGradientMaxpointWithValue("#d600ff", SpreadsheetApp.InterpolationType.NUMBER, "90")
    .setGradientMidpointWithValue("#ffffff", SpreadsheetApp.InterpolationType.NUMBER, "50")
    .setGradientMinpointWithValue("#ff0000", SpreadsheetApp.InterpolationType.NUMBER, "6")
    .setRanges([range])
    .build();

var rule = SpreadsheetApp.newConditionalFormatRule()
.whenNumberBetween(2,5)
    .setGradientMaxpointWithValue("#00b8ff", SpreadsheetApp.InterpolationType.NUMBER, "5")
    .setGradientMidpointWithValue("#ffffff", SpreadsheetApp.InterpolationType.NUMBER, "3.5")
    .setGradientMinpointWithValue("#ff0000", SpreadsheetApp.InterpolationType.NUMBER, "2")
    .setRanges([range])
    .build();

var rule = SpreadsheetApp.newConditionalFormatRule()
.whenNumberBetween(0,1)
    .setGradientMaxpointWithValue("#00ff9f", SpreadsheetApp.InterpolationType.NUMBER, "1")
    .setGradientMidpointWithValue("#ffffff", SpreadsheetApp.InterpolationType.NUMBER, "0.7")
    .setGradientMinpointWithValue("#ff0000", SpreadsheetApp.InterpolationType.NUMBER, "0")
    .setRanges([range])
    .build();
var rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
  
}

【问题讨论】:

    标签: google-apps-script google-sheets conditional-formatting


    【解决方案1】:

    我相信内置条件格式不适合您尝试做的事情。一种可能的解决方案是跳过内置条件格式并使用脚本为每个值计算颜色十六进制并使用setBackgrounds()

    【讨论】:

    • 哦,真的,太糟糕了。不幸的是,我认为脚本任务有点超出我的能力,但我会看看它。谢谢。
    • @mdubes13 如果您遇到特定问题,请提出问题并联系我,只要不是整个脚本并且问题是特定的,我很乐意为您提供帮助。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多