我有一张如下表格:
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功能,但是当我降低数字值并增加天数时,预测的一天会降低,如果我理解正确,它应该增加。
答案 0 :(得分:2)
您需要锁定FORECAST
公式中的第一个电话:
=FORECAST(A17,B$2:B16,A$2:A16)
使用$
符号锁定第二行。
请尝试:
=INDEX(sort(A2:B,2,0), MATCH(C1,sort(B2:B,1,0),-1), 1)
其中C1 = 100(您的号码)
公式会对范围进行两次排序,即使数字不增长也会有效。
答案 1 :(得分:2)
在B13中使用目标Number
,请在A13中尝试:
=FORECAST(B13,A$2:A12,B$2:B12)
你没有显示你尝试的公式,所以它的错误仅仅是一个猜测,但也许你的x
和y
是'错误的方式'。
答案 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}}