正如标题所说明的,我需要创建一个解决方案(我认为是最有可能的脚本),因此,如果B1(此单元格具有SUM函数)中的值大于A1(固定整数),则显示的值B1中的内容将被复制到A1中。
如果B1小于A1,则A1将保持不变。
这将始终用于计算股票交易余额。 A1代表历史最高水平,B1代表当前余额。
任何帮助将不胜感激!
答案 0 :(得分:2)
您可以使用Google Apps脚本轻松实现此功能。为此,请从工作表文档转到“工具”>“脚本编辑器”。在此复制并粘贴以下代码:
function myFunction() {
var sheet = SpreadsheetApp.getActive().getSheetByName('YOUR_SHEET_NAME');
var nRows = sheet.getDataRange().getHeight();
var values = sheet.getRange(1, 1, nRows, 2).getValues();
for (var i=1; i<nRows; i++) {
if (values[i][0] == "") break;
if (values[i][0] < values[i][1]) values[i][0] = values[i][1];
}
sheet.getRange(1, 1, nRows, 2).setValues(values);
}
根据需要调整变量(即替换YOUR_SHEET_NAME
)。现在,保存文档,单击“选择功能”下拉菜单,然后选择myFunction
。点击“播放”按钮。现在应该应用您建议的转换。
最后,为了了解发生了什么,我建议您查看以下链接:
function myFunction() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
var nRows = sheet.getDataRange().getHeight();
var valuesA = sheet.getRange(2, 1, nRows, 1).getValues();
var valuesB = sheet.getRange(2, 2, nRows, 1).getValues();
var valuesE = sheet.getRange(2, 5, nRows, 1).getValues();
var valuesF = sheet.getRange(2, 6, nRows, 1).getValues();
for (var i=0; i<nRows; i++) {
var valueA = valuesA[i][0];
var valueB = valuesB[i][0];
if (valueA == "") break;
if (valueA <= valueB) {
var formula = Utilities.formatString('=SUM(E%s, F%s)', i+2, i+2);
sheet.getRange(i+2, 1).setFormula(formula);
}
}
}