2016-08-17 3 views
0

У меня есть автоматическая обновляющая таблица, которая обновляет разные значения цены.Как изменить цвет ячейки в зависимости от изменения значения

Как я могу настроить условное форматирование, чтобы при повышении значения в ячейке ячейка стала зеленой. И если он опустится, ячейка станет красной. И необязательно, если ячейка вообще не изменяется, она остается белой.

Любая помощь приветствуется :)

+1

Использование Цветовая шкала для форматирования электронной таблицы автоматически https://support.google.com/docs/answer/78413?co=GENIE.Platform%3DDesktop&hl=ru –

+0

@WaqarAhmad Не совсем то, что я ищу. Изучив его, мне кажется, что мне нужно сохранить старые данные ячейки в другой ячейке, когда она изменится, а затем сравнить две ячейки. Какие-нибудь советы для этого? – TabloidA

+0

Вы обновляете таблицу с помощью скрипта приложений? Вы можете сравнить оба значения перед обновлением и использовать метод [setBackground (color)] (https://developers.google.com/apps-script/reference/spreadsheet/range#setbackgroundcolor) – ocordova

ответ

0

В дополнение к рекомендациям в комментарии, вы должны рассмотреть возможность использования функции onEdit(), которая работает автоматически, когда пользователь изменяет значение любой ячейки в электронной таблице. Он использует информацию в event object, чтобы ответить соответствующим образом.

Найдено related SO question, который предложил использовать операторы if.

Пример кода:

function onEdit(event) 
{ 
    var ss = event.range.getSheet(); 
    if (ss.getName() !== "Sheet2") return; // Get out quickly 
    var changedCell = event.source.getActiveRange(); 
    var changedCellA1 = changedCell.getA1Notation(); 
    if (changedCellA1 !== 'B3') return; 

    var c = event.value; // We know we edited cell B3, just get the value 
    var background = 'white'; // Assume 1 <= c <= 2 
    if (c > 2) { 
    background = 'red'; 
    } 
    else if (c < 1) { 
    background = 'black'; 
    } 
    changedCell.setBackground(background); 
    ss.getRange("B12").setBackground(background); 
} 

Вы также можете проверить эти ссылки по теме:

Надеюсь, это поможет!