队列 table 条件格式
Cohort table conditional formatting
我正在寻找一种方法来在 Google 工作表中有条件地设置同类群组 table 的格式,以便颜色从红色(低值)变为黄色(中值)再到绿色(高值)基于每行中的值。有人知道这是否可能吗?
此外,在条件格式菜单中选择“色阶”选项不起作用,因为它根据完整 table 的值而不是每一行单独为 table 着色。
只有当我将它单独应用于每一行时,我才能使用该选项,但我的数据集有数千个条目,所以这对我不起作用。
示例table:https://docs.google.com/spreadsheets/d/1gpLMdgfs10Flt-VTtsc68E3Feju2H8UQhnai-R_9b3k/copy
在此先感谢你们是最棒的!
非脚本化:
=(B2:M2=MAX($B2:$M2))*($B2:$M2<>"")
=(B2:M2=MIN($B2:$M2))*($B2:$M2<>"")
我在 Apps 脚本中编写了一个简单的脚本来将格式应用于每一行。它实现了你想要的每行渐变。
示例:
function applyColorGradientConditionalFormat(min = '#FF0000', mid = '#FF9900', max = '#00FF00') {
const sheet = SpreadsheetApp.getActiveSheet();
const lastCol = sheet.getLastColumn();
const conditionalFormatRules = sheet.getConditionalFormatRules();
// Build this conditional rule for all rows in sheet
for (let i = 2; i <= sheet.getLastRow(); i++) {
let range = sheet.getRange('R' + i + 'C2:R' + i + 'C' + lastCol);
let rule = SpreadsheetApp.newConditionalFormatRule()
.setRanges([range])
.setGradientMinpoint(min)
.setGradientMidpointWithValue(mid, SpreadsheetApp.InterpolationType.PERCENT, '50')
.setGradientMaxpoint(max)
.build()
conditionalFormatRules.push(rule);
}
// Apply all conditional rules built to the sheet
sheet.setConditionalFormatRules(conditionalFormatRules);
};
// Easy improvements: Create a menu to build all conditional formats manually
// or setup triggers to do it automatically
对于您的示例 sheet,结果如下 table:
有用的文档:
我正在寻找一种方法来在 Google 工作表中有条件地设置同类群组 table 的格式,以便颜色从红色(低值)变为黄色(中值)再到绿色(高值)基于每行中的值。有人知道这是否可能吗?
此外,在条件格式菜单中选择“色阶”选项不起作用,因为它根据完整 table 的值而不是每一行单独为 table 着色。 只有当我将它单独应用于每一行时,我才能使用该选项,但我的数据集有数千个条目,所以这对我不起作用。
示例table:https://docs.google.com/spreadsheets/d/1gpLMdgfs10Flt-VTtsc68E3Feju2H8UQhnai-R_9b3k/copy
在此先感谢你们是最棒的!
非脚本化:
=(B2:M2=MAX($B2:$M2))*($B2:$M2<>"")
=(B2:M2=MIN($B2:$M2))*($B2:$M2<>"")
我在 Apps 脚本中编写了一个简单的脚本来将格式应用于每一行。它实现了你想要的每行渐变。
示例:
function applyColorGradientConditionalFormat(min = '#FF0000', mid = '#FF9900', max = '#00FF00') {
const sheet = SpreadsheetApp.getActiveSheet();
const lastCol = sheet.getLastColumn();
const conditionalFormatRules = sheet.getConditionalFormatRules();
// Build this conditional rule for all rows in sheet
for (let i = 2; i <= sheet.getLastRow(); i++) {
let range = sheet.getRange('R' + i + 'C2:R' + i + 'C' + lastCol);
let rule = SpreadsheetApp.newConditionalFormatRule()
.setRanges([range])
.setGradientMinpoint(min)
.setGradientMidpointWithValue(mid, SpreadsheetApp.InterpolationType.PERCENT, '50')
.setGradientMaxpoint(max)
.build()
conditionalFormatRules.push(rule);
}
// Apply all conditional rules built to the sheet
sheet.setConditionalFormatRules(conditionalFormatRules);
};
// Easy improvements: Create a menu to build all conditional formats manually
// or setup triggers to do it automatically
对于您的示例 sheet,结果如下 table: