Вы можете использовать Apps Script и Custom Menu , чтобы решить вашу проблему с настройкой цвета в ячейке в зависимости от даты. Go до Инструменты-> Редактор сценариев и вставьте этот код:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Check Difference', 'dateDifference')
.addToUi();
}
function dateDifference(){
var sheet = SpreadsheetApp.getActiveSheet().getActiveRange(); // Get the selected range on the sheet
var dates = sheet.getValues(); // Get the values in the selected range
var oneDay = 1000*60*60*24;
var row = 1;
var re = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/; // This will help you to check if it's really a date
dates.forEach(function(el){ // Iterate over each value
if(typeof el[0] == 'object'){ // Check if it's really a date
var gmtZone = el[0].toString().split(" ")[4].split(":")[0]; // Take the date's GMT
var dateFormatted = Utilities.formatDate(el[0], gmtZone, "dd/MM/yyyy"); // Format the date
if(re.test(dateFormatted)){ // Test if it's the right format
// This part will calculate the difference between the current date and the future date
var futureDateMs = new Date(el[0]);
var todayDateMs = (new Date()).getTime();
var differenceInMs = futureDateMs - todayDateMs;
var differenceInDays = Math.round(differenceInMs/oneDay);
if(differenceInDays >= 91.2501){ // Test if the difference it's greater to 91.2501 days (3 motnhs)
sheet.getCell(row, 1).setBackground("#00FF00"); // Set the color to the cell
}
row++;
}
}
});
Сохраните его, нажав Файл-> Сохранить .
Затем вы можете выбрать диапазон в столбце и нажать Пользовательское меню-> Проверить разницу , как вы можете видеть на следующем изображении:
Как видите, вы получите желаемый результат:
Обратите внимание
Очень важно быть осторожным с тем, что вы считаете «месяцем», я имею в виду, сколько дней вы собираетесь принять во внимание. В своем коде я принял предложение Google о 1 = 30.4167
.
Документы
Вот другие документы, которые я прочитал, чтобы помочь вам:
Я надеюсь, что это подход может помочь вам.