【发布时间】: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