Формулы не могут сохранить состояние ячейки, поэтому необходимо использовать скрипты.
Общий код выглядит так
function myFunction(e) {
try {
if (!e || !e.range) return;
if (e.range.columnStart > 1) {
var targetCell = SpreadsheetApp.getActiveSheet()
.getRange(e.range.rowStart, 1, e.range.rowEnd - e.range.rowStart + 1);
/* if you want insert the date once uncomment the row below
*
**/
// if(!targetCell.getValue())
targetCell.setValue(new Date());
}
} catch (err) {
SpreadsheetApp.getActiveSpreadsheet().toast(err.message, 'Error!!1');
}
}
Пример для тестирование и объяснение можно посмотреть тут
https://gist.github.com/contributorpw/b179e819c0ee...