如何在Google Sheets中跳过返回数据集的首列与首行?
解决方法
直接在公式内结合LET、CHOOSEROWS和CHOOSECOLS(或INDEX)就能实现需求,既避免重复调用GOOGLEFINANCE,又能高效过滤掉首列和首行:
方法一:用CHOOSEROWS + CHOOSECOLS + LET
=LET( data, GOOGLEFINANCE("MSFT", "price", DATE(2024,1,1), DATE(2024,1,31)), CHOOSEROWS(CHOOSECOLS(data, 2), SEQUENCE(ROWS(data)-1, 1, 2)) )
逻辑说明:
LET(data, ...):把GOOGLEFINANCE的结果存入变量data,避免重复计算CHOOSECOLS(data, 2):提取结果中的第二列(即价格列,去掉首列日期)SEQUENCE(ROWS(data)-1, 1, 2):生成从第2行开始的行号序列,总长度是原数据行数减1(去掉首行表头)CHOOSEROWS(..., 序列):按生成的行号提取对应行,最终得到仅包含价格数据的结果
方法二:用INDEX + LET
=LET( data, GOOGLEFINANCE("MSFT", "price", DATE(2024,1,1), DATE(2024,1,31)), INDEX(data, SEQUENCE(ROWS(data)-1, 1, 2), 2) )
逻辑说明:
- 同样用
LET存储原数据 INDEX(data, 行序列, 2):直接定位到原数据的第2列,行序列从第2行开始到最后一行,实现同时去掉首列和首行
为什么之前尝试失败?
大概率是没有正确生成行号序列——比如直接写CHOOSEROWS(..., 2:ROWS(data))是错误的,必须用SEQUENCE生成连续的行号参数;用INDEX时如果没指定正确的行范围,也会取不到正确结果。
内容的提问来源于stack exchange,提问作者AlanSTACK
相关产品推荐
相关产品推荐

