求Excel公式:从Tab1指定日期区间找触发目标价的最早日期
解决你的Excel公式需求
嘿,我来帮你搞定这个问题!先把咱们两个工作表的信息理清楚:
工作表结构说明
Tab1(日期股价表):
- A列:按顺序排列的每日日期
- AE列:对应A列日期的当日股价
Tab2(买卖触发表):
- C列:按顺序记录的股票买卖日期(C2是买入日,C3是对应的卖出日,以此类推)
- I列:对应每组买卖的关键卖出触发价
公式方案
根据你的需求——在Tab2中查询Tab1里「买入日到卖出日区间」内,最早出现股价≥对应触发价的日期,我分两种Excel版本给你方案:
方案1:Excel 365/2021及以上版本(支持XLOOKUP)
假设你要把结果放在Tab2的J列(对应每一组买卖),J2单元格的公式如下:
=XLOOKUP(TRUE, (Tab1!A:A>=C2)*(Tab1!A:A<=C3)*(Tab1!AE:AE>=I2), Tab1!A:A, "无符合条件日期", 0, 1)
公式解释:
(Tab1!A:A>=C2)*(Tab1!A:A<=C3):先筛选出Tab1中在「买入日(C2)」到「卖出日(C3)」之间的日期范围*(Tab1!AE:AE>=I2):叠加筛选出该范围内股价≥触发价(I2)的行- XLOOKUP会按顺序查找第一个满足条件的行,返回对应的Tab1 A列日期;如果没有符合条件的日期,会返回你设置的提示文本「无符合条件日期」
方案2:旧版Excel(仅支持INDEX+MATCH)
如果你的Excel版本不支持XLOOKUP,可以用数组公式实现:
=INDEX(Tab1!A:A, MATCH(TRUE, (Tab1!A:A>=C2)*(Tab1!A:A<=C3)*(Tab1!AE:AE>=I2), 0))
注意事项:
- 旧版Excel输入完公式后,需要按
Ctrl+Shift+Enter完成数组公式的确认;新版Excel直接回车即可 - 如果没有符合条件的日期,公式会返回#N/A,你可以用
IFERROR包裹来设置提示文本,比如:=IFERROR(INDEX(Tab1!A:A, MATCH(TRUE, (Tab1!A:A>=C2)*(Tab1!A:A<=C3)*(Tab1!AE:AE>=I2), 0)), "无符合条件日期")
要是你的买卖日期分组规则有特殊情况(比如不是C2对应C3这种成对的),或者需要调整范围,可以随时补充示例数据,我再帮你微调公式!
内容的提问来源于stack exchange,提问作者Kevin Gobeil
相关产品推荐
相关产品推荐

