Форматировать цвет ячейки на основе текстового содержимого ячейки

Я хочу сделать что-то вроде этого:

У меня есть что-то вроде «реляционной» электронной таблицы, и я хочу, чтобы строки были раскрашены в соответствии с ней.

введите описание изображения здесь

Я вручную выбираю уникальный цвет для каждой категории на листе «Категории» или создаю уникальный цвет на основе содержимого строки, что подойдет для моего варианта использования.


person Vitim.us    schedule 14.05.2019    source источник


Ответы (2)


Не лучшее решение, но оно работает
 введите описание изображения здесь

function onEdit(e) {
  if(e){
    var ss = e.source.getActiveSheet();
    var range = e.source.getActiveRange();

    var r1 = range.getRow();
    var c1 = range.getColumn();
    var rowsCount = range.getNumRows();

    for(var i=0; i<rowsCount; i++){

      var row = ss.getRange(r1+i,1,1,ss.getMaxColumns());
      updateRow(row, ss);
    }
  }
}

function updateRow(row, ss){
  if (ss.getName() == "Entries") { // This is the sheet name

    var cell = row.getCell(1,1);
    var firstCellValue = cell.getValue();

    if(firstCellValue){
      cell.setBackgroundColor(stringToColor(firstCellValue));
    }
    else{
      cell.setBackgroundColor(null);
    }
  }
}


function stringToColor(str) {
  var hash = 0;
  for (var i = 0; i < str.length; i++) {
    hash = str.charCodeAt(i) + ((hash << 5) - hash);
  }
  var colour = '#';
  for (var i = 0; i < 3; i++) {
    var value = (hash >> (i * 8)) & 0xFF;
    colour += ('00' + value.toString(16)).substr(-2);
  }
  return colour;
}

На основе этого ответа

person Vitim.us    schedule 14.05.2019

в условном форматировании выберите диапазон, в котором вы хотите применить цвета, выберите цвет,
выберите Text is exactly и установите значение:

введите описание изображения здесь

person player0    schedule 14.05.2019
comment
Я не хотел создавать правила для каждой категории - person Vitim.us; 14.05.2019