如何根据文件名中的日期使用IMPORTRANGE函数导入数据?
需求可行性及解决方案
该需求完全可行,核心是通过Google Sheets的日期函数动态生成匹配文件名格式的日期字符串,替换原公式中固定的文件名部分即可实现自动获取当日和7天前的目标数据。
一、当日数据查询公式
将原公式中固定的"ranking_file!A2:O250"替换为动态生成的当日文件名,修改后的公式如下:
=SORTN(SORT(QUERY(IMPORTRANGE("xxxxx/edit","ranking_file-"&TEXT(TODAY(),"YYYY-MM-DD")&"!A2:O250"),"Select Col1,Col4,Col7,Col5,Col14,Col15 where Col5 contains 'xxxxx' and Col15 contains 'Google.co.uk_' and Col4 is not null order by Col4 asc", ), 3, 1), 9^9, 2, 2, 1)
- 关键说明:
TEXT(TODAY(),"YYYY-MM-DD"):自动获取当前系统日期,并格式化为与文件名一致的YYYY-MM-DD格式- 通过
&符号将固定前缀"ranking_file-"、动态日期、表格范围"!A2:O250"拼接成完整的引用路径
二、7天前数据查询公式
同理,将日期部分改为TODAY()-7即可获取7天前的文件数据,公式如下:
=SORTN(SORT(QUERY(IMPORTRANGE("xxxxx/edit","ranking_file-"&TEXT(TODAY()-7,"YYYY-MM-DD")&"!A2:O250"),"Select Col1,Col4,Col7,Col5,Col14,Col15 where Col5 contains 'xxxxx' and Col15 contains 'Google.co.uk_' and Col4 is not null order by Col4 asc", ), 3, 1), 9^9, 2, 2, 1)
三、额外优化建议
如果存在某日期对应的文件未创建的情况,公式会返回错误,可添加IFERROR函数做容错处理,示例如下:
=IFERROR(SORTN(SORT(QUERY(IMPORTRANGE("xxxxx/edit","ranking_file-"&TEXT(TODAY(),"YYYY-MM-DD")&"!A2:O250"),"Select Col1,Col4,Col7,Col5,Col14,Col15 where Col5 contains 'xxxxx' and Col15 contains 'Google.co.uk_' and Col4 is not null order by Col4 asc", ), 3, 1), 9^9, 2, 2, 1), "当日文件未找到")
注意事项
- 首次使用
IMPORTRANGE时,需要点击公式返回的权限提示,完成跨表格数据访问授权 - 确保文件名的日期格式与
TEXT函数生成的格式完全一致(即YYYY-MM-DD,注意横杠分隔)
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

