@ramzanice

Подсчет как в калькуляторе в гугл таблицах?

доброго времени суток, помогите пожалуйста, допустим есть в ячейке С1 формула =А1+А2-В1), то есть стандартная работа формулы прибавления и вычитания, и всегда будет результат от текущих значений А1+А2-В1
Как сделать чтобы каждый раз введенное число прибавлялось или вычиталось к предыдущему значению С1?
То есть каждое измененное число в А1, А2, В2 должно прибавляться или вычитаться к предыдущему результату в С1, как в калькуляторе, 2+2 сделал, ответ 4, еще + 3 сделал, стало 7, -5 сделал - стало 2
ну например в начале в С1 стоит число 2, я ввожу в А2 число 5, оно прибавляется к 1 и теперь в С1 теперь должно быть число 7, если позже ввожу в В1 число 2, происходит минус 2 и теперь в С1 должно быть число 5
нужно чтобы после изменения какого то числа из ячеек, новое число прибавилось к предыдущему итоговому числу.
по умолчанию + - происходит без сохранения предыдущего результата
а мне надо каждое новое изменение + предыдущее итоговое значение из С1
как в калькуляторе, каждое новое число прибавляется к старому
2+2=4+3=7-2=5+9=14-2=12

ПРИМЕР
  • Вопрос задан
  • 939 просмотров
Пригласить эксперта
Ответы на вопрос 1
ProgrammerForever
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
Если надо сделать приход-расход-баланс, то такой вариант - плохая затея.
Но можете поиграться с этим (назначить триггер на редактирование):
function _onEdit(e) {    
    let sheet = e.source.getActiveSheet();
    let address = e.range.getA1Notation().toUpperCase();
    let newValue =  e.value;
    
    if(!(["Лист1"].includes(sheet.getName()))){
        return;
    };
    if (address==="A1") {
        let outRange = sheet.getRange("C1");
        let outValue = +newValue+outRange.getValue();
        outRange.setValue(outValue);
        return;
    };
    if (address==="B1") {
        let outRange = sheet.getRange("C1");
        let outValue = -newValue+outRange.getValue();
        outRange.setValue(outValue);
        return;
    };
};
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы