队列 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:

有用的文档: