在Excel中从每日股票/指数数据提取月度开盘与收盘价
月度开盘价与收盘价提取数组公式方案
假设你的数据结构为:
- A列:交易日日期(Excel可识别格式)
- B列:开盘价
- E列:收盘价
数据行范围:第3行至第254行
提取月度开盘价(每月首个交易日开盘价)
在空白列(如G列)的G3单元格输入以下数组公式,下拉至G14即可得到1-12月的开盘价:
=INDEX($B$3:$B$254,MATCH(MIN(IF(MONTH($A$3:$A$254)=ROW(A1),$A$3:$A$254)),$A$3:$A$254,0))
注:旧版Excel需按
Ctrl+Shift+Enter确认数组公式;若你的开盘价列不是B列,替换公式中的$B$3:$B$254为实际列范围。
验证:该公式提取的1月开盘价应为3764.61,2月为3731.17。
提取月度收盘价(每月最后一个交易日收盘价)
在空白列(如H列)的H3单元格输入以下数组公式,下拉至H14即可得到1-12月的收盘价:
=INDEX($E$3:$E$254,MATCH(MAX(IF(MONTH($A$3:$A$254)=ROW(A1),$A$3:$A$254)),$A$3:$A$254,0))
注:同开盘价公式,旧版Excel需按
Ctrl+Shift+Enter确认;收盘价列若不是E列,替换$E$3:$E$254为实际列范围。
核心逻辑说明
- 利用
MONTH($A$3:$A$254)=ROW(A1)筛选对应月份的所有交易日 - 用
MIN()取当月最早交易日、MAX()取当月最晚交易日 - 通过
MATCH()定位该交易日在数据行中的位置,最后用INDEX()提取对应价格
内容的提问来源于stack exchange,提问作者pvwhite01
相关产品推荐
相关产品推荐

