从FINVIZ拉取谷歌表格股息数据遇#REF错误,求排查原因
分析谷歌表格INDEX函数#REF!错误的原因
首先,咱们直接看错误提示:Function INDEX parameter 3 value is 2. Valid values are between 0 and 1,翻译过来就是你用的INDEX函数第三个参数(列索引)填了2,但当前这个参数的有效范围只能是0到1——这说明你要提取的那个表格,现在只有1列,你却硬要取第2列,自然就越界报错了。
咱们拆解你的公式核心部分:
INDEX(IMPORTHTML("http://finviz.com/quote.ashx?t="®EXEXTRACT(E9, "[^:]+$") ,"table", 9),7,2)
这里你指定了FINVIZ报价页的第9个表格("table",9),然后要取这个表格的第7行第2列数据。现在报错的根源就是:FINVIZ的页面结构大概率更新了——原来的第9个表格至少有2列,但现在这个表格的列数变成了1列,或者甚至你要找的年度股息数据已经不在第9个表格里了。
具体来说有两种可能:
- 全站页面结构变更:FINVIZ近期修改了报价页的HTML布局,把你依赖的第9个表格的列数缩减到了1列,或者直接把年度股息数据移到了其他表格里。
- 个别标的的特殊情况:比如你当前E9单元格的VTI,它的报价页里第9个表格的结构和其他标的不一样,但这种情况概率极低,更可能是全站统一调整。
你可以快速验证这个问题:把=IMPORTHTML("http://finviz.com/quote.ashx?t=VTI","table",9)单独放到一个空白单元格里,看看返回的表格有多少列。如果结果只有1列,那就能实锤是表格列数不足导致的INDEX越界错误。
要解决这个问题,你需要重新去FINVIZ的VTI报价页,找到年度每股股息所在的位置,然后确定它属于第几个表格、第几行第几列,再修改公式里的"table",X以及INDEX的行/列参数。
内容的提问来源于stack exchange,提问作者Japnit Sethi
相关产品推荐
相关产品推荐

