首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Google Sheets条件格式中创建3个单独的色标范围

无法在Google Sheets条件格式中创建3个单独的色标范围
EN

Stack Overflow用户
提问于 2020-12-27 13:05:29
回答 1查看 39关注 0票数 1

所以我尝试创建三个不同的色标,这样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,在其范围内应该是白色的,是完全绿色的。

这是我的脚本编写尝试,如果有人能帮助我让它工作,我将非常感激。

代码语言:javascript
复制
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);
  
}
EN

回答 1

Stack Overflow用户

发布于 2020-12-27 14:09:43

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65463011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档