Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 谷歌金融作为ArrayFormula的论据_Google Apps Script_Google Sheets_Google Sheets Formula_Array Formulas_Google Finance - Fatal编程技术网

Google apps script 谷歌金融作为ArrayFormula的论据

Google apps script 谷歌金融作为ArrayFormula的论据,google-apps-script,google-sheets,google-sheets-formula,array-formulas,google-finance,Google Apps Script,Google Sheets,Google Sheets Formula,Array Formulas,Google Finance,我试图让第1行(我的标题行)有一个名字,然后在下面,如果一个有效的股票代码是B列中的输入,让google finance获取该股票的价格。然而,我在“股价”下面的所有单元格中都得到了N/A,我不知道为什么 请帮忙 编辑:链接到图纸: 谷歌金融已经是一个公式了,所以这不会像你预期的那样起作用 您将需要使用以下脚本: =ARRAYFORMULA(IF(ROW(B:B)=1, "Share Price", IF(ISBLANK(B:B), "", googlefinance(B:B, "price")

我试图让第1行(我的标题行)有一个名字,然后在下面,如果一个有效的股票代码是B列中的输入,让google finance获取该股票的价格。然而,我在“股价”下面的所有单元格中都得到了N/A,我不知道为什么

请帮忙

编辑:链接到图纸:

谷歌金融
已经是一个公式了,所以这不会像你预期的那样起作用

您将需要使用以下脚本:

=ARRAYFORMULA(IF(ROW(B:B)=1, "Share Price", IF(ISBLANK(B:B), "", googlefinance(B:B, "price"))))
其中C1需要:

function onOpen(e){this.arrayThis("C1:C");}    //COLUMN WHERE YOU WANT TO HAVE THE RESULT
function arrayThis(range){
SpreadsheetApp.getActiveSpreadsheet().getRange(range).setValue(SpreadsheetApp.getActiveSpreadsheet().getRange(range).getCell(1,1).getFormula());
}

共享您的sheet@player0我编辑了原始帖子,加入了一个链接。我很感激你的回答,因为这正是我想要的。然而,有一个主要的功能仍然不起作用。如果我在任意点添加新行并用新的代码填充它,即使在重新运行脚本之后,工作表也不会更新信息。这就像脚本不知道添加了新列一样。是否尝试将onOpen更改为OneEdit?我尝试过,但仍然不起作用。当我添加一个新列时,公式不会填充到其中。嗨@Warstolrem!我尝试过@player0解决方案,它确实对我有效。此外,我尝试在
Ticker
股价
之间以及
公司名称
Ticker
之间添加一列,等式仍然执行(事实上,公式的引用从
C1
更改为
E1
)。你能分享你的问题的截图吗?或者让我知道我是否和你做了同样的步骤?另外,在运行函数之前,您是否已将
=IF(行(B1)=1,“股价”,IF(B1=“”,GOOGLEFINANCE(B1,“价格”))
添加到
C1
?谢谢我希望这能更好地显示问题,TSLA的行是在原始程序运行后创建的,但是,已经进行了大量编辑,并且没有填充工作表。我也尝试过使用onOpen并重新打开页面,但没有成功:
=IF(ROW(B1)=1, "Share Price", IF(B1="",,GOOGLEFINANCE(B1, "price")))