#google-sheets #spreadsheet #conditional-formatting
Вопрос:
У меня есть ряд значений в одном столбце (в данном случае рост человека), которые я сделал максимально удобочитаемыми для человека. Однако я хочу закодировать их цветом, поэтому рядом с ними у меня есть второй столбец, в котором я ввел эти высоты как чистые числа, к которым затем применил цветовую шкалу (условное форматирование). Обычно было бы несколько легко использовать условное форматирование на основе другой ячейки с помощью пользовательской формулы, но с функцией цветовой шкалы нет способа ввода условий (по крайней мере, я знаю об этом).
Поэтому я хочу попробовать скопировать форматирование из столбца с чистым числом в столбец, доступный для чтения человеком (тогда я могу просто скрыть первое). К сожалению, поскольку это условное форматирование, я не могу просто скопировать цвета напрямую, так как они будут меняться в зависимости от новых значений ячеек. Я знаю, что Google Листы поддерживают какие-то сценарии, поэтому я решил, что должен быть какой-то способ автоматически настроить текущий цвет фона/заливки одной ячейки, чтобы он соответствовал цвету другой, который также может обновляться, если изменится форматирование этой другой ячейки. К сожалению, я понятия не имею, как делать все эти сценарии, поэтому я хотел спросить здесь, может ли кто-нибудь помочь мне в этом разобраться.
Редактировать: Вот очень простой пример того, что у меня есть сейчас. То, что я пытаюсь сделать, — это применить то же форматирование, что и справа налево, без изменения значений.
Комментарии:
1. Пожалуйста, поделитесь образцом электронной таблицы и желаемыми результатами.
2. Вот вы где, я хочу каким-то образом присвоить левой стороне ту же окраску, что и правой, не меняя значения.
Ответ №1:
Попробуйте это:
- В вашей электронной таблице перейдите в раздел Инструменты -> >Редактор сценариев
- Удалите любой код в редакторе сценариев
- Вставьте код, приведенный ниже.
- Нажмите кнопку Выполнить
Код:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("Sheet1");
var sourceBG = sh.getRange("B2:B8").getBackgrounds();
sh.getRange("A2:A8").setBackgrounds(sourceBG);
}
Примечание. Просто измените диапазон, если у вас больше строк, и убедитесь, что диапазон источника и назначения имеет одинаковый размер.
Выход: