2014-01-30 320 views
0

我正在制作一个每天更新自己的电子表格。为了简单起见,假设我每个中午都会生成一个数字,并且在晚上,电子表格应该将数字复制到日志列中,并显示此列的所有存储值的总和(实际上有几列,并且它们的数量可能会在未来成长)。在我目前的实施中,总和公式会自动更新,从而只保存以前可用的值。我希望我能阻止这种行为。插入行并在Google电子表格中保留公式

实施例:

电子表格读取:

Total  1 
Today  2 
History 
1/29/2014 1 

明天,在我更新它,它应该是:

Total  3 
Today  
History 
1/30/2014 2 
1/29/2014 1 

我插在 “总计” 线的公式是:

=sum(B4:B) 

基本上,我对剧本做出的代码包含:

//Inserts a new line to compose history log: 
sheet.insertRowsAfter(firstHystoryLine-1, 1); 

,并运行该脚本后,公式更新为

=sum(B5:B) 

所以我的问题。

+0

我发现了一个合适的解决方案,只通过复制值: var todayCol = sheet.getRange(“E2:E7”); today.Col.copyTo(sheet.getRange(“F2:F7”),{contentsOnly:true}); – Mefitico

回答

0

尝试总和(b3:b)。插入一行应该不会影响公式。

+0

不知道我是否正确理解了你的观点,但我无法完成工作。使用小写不会改变任何东西。不使用等号可以防止数字发生变化,但公式显示在单元格中而不是结果中。 – Mefitico

+0

对不起,您需要等号它是一个公式so = sum(b3:b) –

+0

建议从B3开始计算总和。插入新行时,公式不会更改。 –

0

将您的字段设置为= Sum(B $ 4)。使用美元符号应该防止它滑动。如果你在列中添加,你会想要做=总和($ B $ 4)。

+0

没有为我工作。无论$符号如何,该表格实际上已更改为= Sum($ B $ 5:B)。即使只有一个单元格(= Sum($ B $$)),它也会增加数字。 – Mefitico

0

或者,你可以在你的代码添加

sheet.getRange("B1").setFormula("=sum(b4:b)") 

这将正确地重置您的公式。

相关问题