Сложность задачи в том, что при использовании формул, гуглдоки обновляют ее каждый раз, когда происходит синхронизация, часто возникают ситуации, когда нам нужно зафиксировать дату, когда произошло то или иное событие в какой то из ячеек.
Для этого я использовал макрос 
Владимир Калаганов и немного его изменил.
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var idCol = e.range.getColumn();
var idRow = e.range.getRow();
if ( idCol == 1 && sheet.getName() =='Проверка' ) { 
//указываем место, где будем писать, точнее его номер и имя листа
  var Value = e.range.offset(0, 2).getValues(); // Смотрим что в ячейке справа на 2
  if ( Value == "" ) {
//если там пусто, то пишем дату
    var vartoday = getDate();
    sheet.getRange(idRow, 3).setValue( vartoday );
//показывает где именно писать дату
} 
}
  if ( idCol == 9 && sheet.getName() =='Проверка' ) {
  var Value = e.range.offset(0, 3).getValues(); 
  var Value1 = e.range.offset(0, 0).getValues();
    if ( Value == "" && Value1=="Одобрено") {
    var vartoday = getDate();
    sheet.getRange(idRow, 12).setValue( vartoday );
} 
}
}
// Returns YYYYMMDD-formatted date.
function getDate() {
var today = new Date();
today.setDate(today.getDate());
//return Utilities.formatDate(today, 'PST', 'dd.MM.yyyy');
return Utilities.formatDate(today, 'GMT+07:00', 'dd.MM.yyyy');
}
