- В качестве тестового примера вы помещаете пользовательскую формулу в столбец «C1», например
=DrivingMiles(A1,B1)
. - Когда значение столбца «C» НЕ пусто, вы хотите преобразоватьформулы к статическому значению.
- Вы хотите добиться этого с помощью Google Apps Script.
Из вашего комментария ответа я могу понять, как выше.Если мое понимание верно, как насчет этого ответа?Я думаю, что есть несколько ответов для вашей ситуации.Поэтому, пожалуйста, подумайте об этом как об одном из них.
Шаблон 1:
В этом шаблоне, когда ставится пользовательская формула =DrivingMiles()
, когда возвращаемое значение НЕ пусто,формула преобразуется в значение.
Для этой ситуации я использовал триггер события OnEdit простого триггера.Когда вы используете этот скрипт, пожалуйста, скопируйте и вставьте следующий скрипт и поместите пользовательскую формулу, такую как =DrivingMiles(A1,B1)
.Когда возвращаемое значение НЕ пустое, формула автоматически преобразуется в статическое значение.
Пример сценария:
function onEdit(e) {
var value = e.range.getValue();
if (e.range.getColumn() === 3 && ~e.range.getFormula().toUpperCase().indexOf("=DRIVINGMILES(") && value) {
e.range.setValue(value);
}
}
- Если вы хотите запустить триггер события OnEdit дляконкретный лист, пожалуйста, измените приведенный выше скрипт.
Шаблон 2:
В этом шаблоне при запуске следующего сценария ячейки столбца «C» преобразуются из формулк значениям, когда ячейка имеет значение и формулу или единственное значение.
Пример сценария:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(1, 3, sheet.getLastRow(), 1); // Column "C"
var values = range.getValues();
var formulas = range.getFormulas();
var convertedValues = values.map(function(e, i) {return e[0] && formulas[i][0] || e[0] ? [e[0]] : [formulas[i][0]]});
range.setValues(convertedValues);
}
- Может использоваться для активного листа.
Ссылки: