我的查询是关于印度股票市场的,我从谷歌表格中的
=googlefinance
函数获取报价。我非常失望地知道该功能不显示最后收盘价。相反,它显示最后的交易价格。
让我们以股票 RELIANCE 为例:
=GoogleFinance("NSE:reliance", "price")
结果是 2498.00,这是不正确的。
根据印度国家证券交易所官方数据,2022 年 9 月 16 日星期五的实际收盘价为 2499.20。您可以参考此链接了解收盘价和下面的屏幕截图
错误报价2498.00是收盘前的最后成交价 收盘时正确报价为 2499.20。
这种行为在印度股市的所有股票中都很常见。我几乎使用了
=googlefinance
函数中可用的所有参数,但我找不到获得正确股票报价的方法。
然后我决定使用以下方法从官方网站上抓取值,但没有成功
<div id="closePrice">2,499.20</div>
//*[@id="closePrice"]
/html/body/div[2]/div[4]/div[2]/div[1]/div[4]/ul/li[6]/div[1]
document.querySelector("#closePrice")
我在这个网站和谷歌上搜索了很多有价值的文章,但找不到可以获取所需结果的解决方案。有人可以帮助我使用
=googlefinance
功能或从办公室网站抓取价值来获得 2499.20 作为 RELIANCE 股票的结果吗?
谢谢你。
@TheMaster建议的解决方案(非常感谢!)
=LAMBDA(gf,INDEX(gf,ROWS(gf),2))(GOOGLEFINANCE("NSE:RELIANCE", "close",TODAY()-5,15))
另外两种方式
=index(GOOGLEFINANCE("NSE:reliance","Close",today()-5,15),4,2)
=query(GOOGLEFINANCE("NSE:reliance","Close",today()-5,15),"select Col2 where Col1 < date '"&TEXT(today()+1, "YYYY-MM-DD")&"' order by Col1 desc limit 1",False)
我也很想知道这些方法或其他方法(如果有的话)中的哪一种能够更快地获得结果,而不会出现崩溃或任何其他处理问题,因为我的谷歌表加载了数千个股票报价,这些报价每 1 分钟刷新一次。
仅历史价格支持
close
属性。使用 start date
参数获取历史价格并获取最后的 close
:
=LAMBDA(gf,INDEX(gf,ROWS(gf),2))(GOOGLEFINANCE("NSE:RELIANCE", "close",TODAY()-5,15))
这是实现结果的另一种方式。
=query(GOOGLEFINANCE("NSE:reliance","Close",today()-5,15),"select Col2 where Col1 < date '"&TEXT(today()+1, "YYYY-MM-DD")&"' order by Col1 desc limit 1",False)
当我比较解决方案
=LAMBDA
和 =QUERY
在 2500 多只股票上的性能时,我发现查询比 lambda 更快。
干杯!
但是,我的主要问题仍未解决,因为在实际一天结束之前,谷歌财经的公式都无法给出今天的收盘价。
下面将提供今日收盘价(如果是工作日)/前一个工作日收盘价。
=IFERROR(INDEX(GOOGLEFINANCE("NSE:RELIANCE","收盘",今天()-5,5),COUNT(GOOGLEFINANCE("NSE:RELIANCE","收盘",今天()-5,5)) /2+1,2),"")