You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets数据导入公式间歇性报#N/A错误,请求排查原因

问题描述

我在Google Sheets中使用以下公式从指定网址获取基金净值数据并拆分至不同列:

=ArrayFormula(SPLIT(FILTER(SPLIT(IMPORTDATA("https://www.amfiindia.com/spages/NAVAll.TXT"),CHAR(10)),isnumber(left(SPLIT(IMPORTDATA("https://www.amfiindia.com/spages/NAVAll.TXT"),CHAR(10)),2)*1)=true,SPLIT(IMPORTDATA("https://www.amfiindia.com/spages/NAVAll.TXT"),CHAR(10))<>""),";"))

该公式有时能正常运行,有时会弹出#N/A错误,提示“could not fetch URL”。想知道这是目标网站的问题,还是公式需要进一步修正?

问题分析与解决

一、错误原因

这个错误是网站限制+公式冗余共同导致的:

  • 网站端因素:AMFI India的这个TXT文件承载了全印度公募基金的净值数据,访问量较高,服务器可能会临时限制高频请求,或者偶尔出现过载,导致Google Sheets的IMPORTDATA函数无法成功抓取内容。
  • 公式端问题:原公式重复调用了3次IMPORTDATA,每次调用都会发起独立的网络请求,这不仅会大幅增加触发网站限制的概率,还会降低公式运行效率,加重请求负担。

二、公式优化方案

使用Google Sheets的LET函数存储中间结果,将IMPORTDATA的调用次数减少到1次,既降低请求压力,又提升公式可读性:

=LET(
  raw_data, IMPORTDATA("https://www.amfiindia.com/spages/NAVAll.TXT"),
  split_lines, SPLIT(raw_data, CHAR(10)),
  filtered_lines, FILTER(split_lines, ISNUMBER(LEFT(split_lines, 2)*1), split_lines <> ""),
  SPLIT(filtered_lines, ";")
)

三、额外建议

  • 若仍偶尔出现抓取失败,可右键对应单元格选择「刷新」来重新触发请求;
  • 若网站限制频繁,可考虑用Google Apps Script编写定时抓取脚本,将数据批量存入Sheet,减少实时请求的压力。

内容的提问来源于stack exchange,提问作者Ramadurai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 03:32:24