Ответ chatgpt, проверяйте:
Чтобы решить проблему, можно использовать Google Apps Script. Скрипт будет автоматически заполнять формулы в ячейки после добавления данных в таблицу. Вот как это сделать:
1. Откройте Google Sheets.
2. Перейдите в меню Extensions → Apps Script.
3. Вставьте следующий скрипт:
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var range = e.range;
// Убедитесь, что скрипт работает только для определённого листа
if (sheet.getName() === "Sheet1") { // Замените "Sheet1" на имя вашего листа
var row = range.getRow();
var col = range.getColumn();
// Проверяем, что данные добавляются в диапазон A:D
if (col >= 1 && col <= 4 && row > 1) { // Пропускаем заголовок
var gender = sheet.getRange(row, 1).getValue(); // Ячейка A
var weight = sheet.getRange(row, 2).getValue(); // Ячейка B
var height = sheet.getRange(row, 3).getValue(); // Ячейка C
var age = sheet.getRange(row, 4).getValue(); // Ячейка D
// Вычисление дневной нормы калорий
var calories;
if (gender === "man") {
calories = 88.362 + (13.397 * weight) + (4.799 * height) - (5.677 * age);
} else if (gender === "woman") {
calories = 447.593 + (9.247 * weight) + (3.098 * height) - (4.330 * age);
} else {
calories = "Неверный пол";
}
sheet.getRange(row, 5).setValue(calories); // Записываем в ячейку E
// Вычисление дефицита калорий
var deficit;
if (typeof calories === "number") {
if (calories > 2300) {
deficit = "1800 ккал";
} else if (calories > 2000) {
deficit = "1650 ккал";
} else if (calories > 1700) {
deficit = "1500 ккал";
} else {
deficit = "1350 ккал";
}
} else {
deficit = "Ошибка";
}
sheet.getRange(row, 6).setValue(deficit); // Записываем в ячейку F
}
}
}
4. Сохраните проект, например, как AutoFillFormulas.
5. Перейдите в Triggers (триггеры) и добавьте новый триггер:
Выберите функцию onEdit.
Выберите событие On edit.
Теперь, когда Make добавляет данные в столбцы A:D, скрипт автоматически вычислит значения для столбцов E и F.