Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何将两个相邻列相加,然后在最左边的列中显示新值_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 如何将两个相邻列相加,然后在最左边的列中显示新值

Google apps script 如何将两个相邻列相加,然后在最左边的列中显示新值,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我需要将两个相邻的列相加,然后在两列中的第一列中显示该值,清除第二列中的值,并在第二列中添加新数字时重复。我不介意这是链接到一个按钮还是直接从一个输入 我试过这个: function doTest() { var ss = SpreadsheetApp.getActiveSheet(); var num1 = ss.getRange("D7:D116").getValue(); var num2 = ss.getRange("E7:E116").getValue(); ss.getRange(

我需要将两个相邻的列相加,然后在两列中的第一列中显示该值,清除第二列中的值,并在第二列中添加新数字时重复。我不介意这是链接到一个按钮还是直接从一个输入

我试过这个:

function doTest() {
var ss = SpreadsheetApp.getActiveSheet();
var num1 = ss.getRange("D7:D116").getValue();
var num2 = ss.getRange("E7:E116").getValue();

ss.getRange("D7:D116").setValue(num1+num2);
ss.getRange("E7:E116").clearContent();
}
这是基本思想,但它只将第一个和值打印到每个单元格中,而不是将公式应用到每行值中

我曾在几篇类似的文章中提到过,但它们似乎是关于在不同的工作表或工作簿中从一列到另一列重新打印数据。 数组公式可能有效,但我只能使用两列,不能丢失值

我看到的一个数组公式是

=ArrayFormula( IF( ROW( B:B ) < 1 , "" , IF( LEN( C:C ) * LEN( B:B ) , B:B + C:C & Clear C:C, IFERROR( 1/0 ) ) ) )
=ArrayFormula(如果(第(B:B)行<1,”,如果(长(C:C)*长(B:B),B:B+C:C&清除C:C,插入错误(1/0)))
我得到了这个堆栈溢出,它的工作第一次。但是,它需要3列,并且不会累计添加值。我对arrays/java的理解还不够,无法修复它

任何帮助都将是惊人的。我想请你在每个动作中添加注释,这样我就可以按照任何脚本进行操作

我正在处理的工作表示例=>>

  • 使用
    getValues()
    setValues()
  • 在每行上循环以找到总和

在应用程序脚本开发人员参考中,查看
getValues()
setValues(values[]])
的条目,并与此处使用的方法进行对比(
getValue()
setValue(value)
)。
function doTest() {
  //@OnlyCurrentDoc
  var ss = SpreadsheetApp.getActiveSheet();
  var rng = ss.getRange("D7:E116");
  var val = rng.getValues(); //getRangeValues
  //Loop over each row
  for(row=0;row<val.length;row++) {
    val[row][0] = val[row][0]+val[row][1];// Current row's First Column[0] value = first column+ second column
    val[row][1] =''; //set Second Column value null
  }
  rng.setValues(val)
}