如何预测何时会达到一个值?

时间:2017-11-23 20:57:21

标签: google-sheets

我有一张如下表格:

Day  | Number  
1    |  2  
2    |  2.5  
3    |  3.5  
4    |  5  
5    |  7  
6    |  8  
7    |  10  
8    |  11  
9    |  13  
10   |  15  
11   |  12 

大多数情况下,这些数字随着时间的推移而增加,但有时它们会减少。我想知道数字的价值在哪一天是一定的数字。例如,我想知道在哪一天,Number的值将达到100。

这可能吗?我尝试使用FORECAST功能,但是当我降低数字值并增加天数时,预测的一天会降低,如果我理解正确,它应该增加。

3 个答案:

答案 0 :(得分:2)

步骤1。使用预测

您需要锁定FORECAST公式中的第一个电话:

=FORECAST(A17,B$2:B16,A$2:A16)

使用$符号锁定第二行。

enter image description here

第二步。在预测中找到一天的位置

请尝试:

=INDEX(sort(A2:B,2,0), MATCH(C1,sort(B2:B,1,0),-1), 1)

其中C1 = 100(您的号码)

enter image description here

公式会对范围进行两次排序,即使数字不增长也会有效。

答案 1 :(得分:2)

在B13中使用目标Number,请在A13中尝试:

=FORECAST(B13,A$2:A12,B$2:B12)

SO47463164 example

你没有显示你尝试的公式,所以它的错误仅仅是一个猜测,但也许你的xy是'错误的方式'。

答案 2 :(得分:1)

我会使用函数斜率来计算日期。坡度是每天增加的金额。编辑C2时,此脚本将计算您输入的数字的日期。在C2中输入目标号码。在F2 put = slope(B2:B12,A2:A12)中。自定义菜单有重置。

function onOpen() {
 SpreadsheetApp.getActiveSpreadsheet().addMenu(
    'Reset', [ 
     { name: 'Reset', functionName: 'reset' }
    ])}
function onEdit(e) {
  var sheet=e.source.getSheetName()
  var cell=e.range.getSheet().getActiveCell().getA1Notation()
  var ss=SpreadsheetApp.getActiveSpreadsheet()
  var s=ss.getSheetByName("Sheet1")
  var find=s.getRange("C2").getValue()
  var slope=s.getRange("F2").getValue()
Answer=0
if(sheet=="Sheet1" && cell=="C2"){
for (var i=0;i<100;i++){
  var Answer=Answer+1
  var test=Math.round(slope*Answer)
if(test>=find){
 s.getRange("D2").setValue(Answer);
    break; 
}}}}
function reset(){
  var ss=SpreadsheetApp.getActiveSpreadsheet()
  var s=ss.getSheetByName("Sheet1")
  s.getRange("C2").setValue(0) 
  s.getRange("D2").setValue(0);
} 

以下是您可以复制并尝试的测试电子表格。 {{3}}