所以我尝试创建三个不同的色标,这样0-1范围内的数字从红色到白色变成(比如说)绿色,2-5从红色到白色变成青色,6-90从红色到白色变成紫色。其意图是指示接近0、2和6的值在其各自的范围内都是“差”的,而更接近每个范围的顶部的值是“好”的。
一开始,我只是简单地转到:
条件格式-> colour scale ->选择中点、中点和最大点数以及颜色。->向下滚动->添加另一个规则
..。直到我有了我的三条规则。这一切看起来都会起作用,因为范围不会重叠。
不幸的是,输入到定义范围中的所有数字都只根据其中一个规则进行格式化。所以,例如。我第一次尝试时,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);
}发布于 2020-12-27 14:09:43
我认为内置的条件格式并不适合你正在尝试做的事情。一种可能的解决方案是跳过内置的条件格式,并使用脚本和setBackgrounds()计算每个值的十六进制颜色。
https://stackoverflow.com/questions/65463011
复制相似问题