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

如何让Excel的STOCKHISTORY函数返回月末汇率而非月初汇率?

解决Excel STOCKHISTORY获取月末汇率的问题

你遇到的问题是因为STOCKHISTORY的**每月间隔参数(第四个参数设为2)**默认取每个月的第一个交易日,而非你指定的月末日期。要获取月末汇率,得换个思路,直接定位到每个月的最后一个交易日(若月末当天是非交易日,函数会自动返回最近的有效交易日数据)。

给你两种实用方法:

方法1:辅助列生成月末日期+逐个获取汇率

  1. 先在A列生成2022年每个月的月末日期,用EOMONTH函数:
    =EOMONTH("2022/1/1",SEQUENCE(12)-1)
    这个公式会自动生成12个月末日期(从2022/1/31到2022/12/31)。
  2. 在B列对应位置输入公式获取汇率:
    =STOCKHISTORY("EUR/CAD",A1,A1,0,1)
    把公式往下拖,就能得到每个月末(或最近前一个交易日)的EUR/CAD汇率。

方法2:动态数组一次性输出(无需辅助列)

用LET+MAP函数组合,直接生成日期和汇率的对应表:

=LET(
    dates, EOMONTH("2022/1/1",SEQUENCE(12)-1),
    rates, MAP(dates, LAMBDA(d, STOCKHISTORY("EUR/CAD",d,d,0,1))),
    HSTACK(dates, rates)
)
  • dates:生成全年12个月末日期;
  • rates:遍历每个日期,调用STOCKHISTORY获取当天汇率;
  • HSTACK:把日期和汇率合并成两列输出。

注意事项

如果月末当天是周末或外汇市场节假日,STOCKHISTORY会自动返回最近的前一个交易日的汇率——这是正常的,因为非交易日没有官方汇率报价。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:15:49