谷歌表格中按指定日期和邮编查询气温的技术求助
谷歌表格:获取指定邮编对应日期气温的问题解决
原公式的关键错误
- URL拼接错误:你把日期(A1)错误拼进了URL,且
@z-us-的格式不符合timeanddate的天气页面结构。该网站的美国扩展预报URL格式应为https://www.timeanddate.com/weather/us/[城市名]-[邮编]/ext,直接用邮编的话网站会跳转,但IMPORTHTML可能无法处理跳转,导致抓取失败。 - 日期引用搞反:你用了邮编单元格(B1)来格式化日期,正确应该用A1的日期来匹配表格中的日期列,即
TEXT(A1,"ddd MMM DD YYYY")。 - 列索引与需求不匹配:原公式选择了多列,但你只需要C1显示气温,无需选Col3/4/5/6/8,且列索引可能和实际页面表格不符。
修正后的尝试步骤
- 先验证表格抓取:单独运行以下公式,确认能否获取预报表格:
=IMPORTHTML("https://www.timeanddate.com/weather/us/"&B1&"/ext","table",1)
如果返回#N/A,说明网站阻止了请求,或URL需调整为城市+邮编格式(比如"https://www.timeanddate.com/weather/us/new-york-"&B1&"/ext",但需对应城市名)。
- 添加筛选逻辑:若能成功抓取表格,用以下公式筛选A1日期对应的气温(根据实际抓取的表格调整Col索引,比如假设Col3是气温列):
=QUERY(IMPORTHTML("https://www.timeanddate.com/weather/us/"&B1&"/ext","table",1),"SELECT Col3 WHERE Col1='"&TEXT(A1,"ddd MMM DD YYYY")&"'",1)
- 第三个参数设为
1,因为表格第一行是表头 - 确认Col1的日期格式和
TEXT(A1,"ddd MMM DD YYYY")完全匹配(比如表格中是Wed Oct 11 2023格式)
替代方案(若网站反爬)
timeanddate.com可能限制Google Sheets的抓取请求,此时建议使用支持公开API的天气服务,比如:
- 用
GOOGLEFINANCE函数的天气功能(部分地区支持):=GOOGLEFINANCE("weather:"&B1,"temperature") - 第三方免费API,结合
IMPORTDATA或自定义脚本调用
内容的提问来源于stack exchange,提问作者Patchhr33
相关产品推荐
相关产品推荐

