Excel:对于 A1,找到单元格之前的最高后续单元格

Excel:对于 A1,找到单元格之前的最高后续单元格

我在 A 列中有一列随时间波动的价格,为了便于论述,我们假设它是某只股票的价格。

在 BI 列中,您想要知道从该点开始价格涨到了多高,然后才低于当前金额。

因此,我想我需要一个公式,循环遍历所有后续单元格,直到找到单元格 < A1,然后在此范围内的所有单元格中打印最高值。

任何帮助都将不胜感激!谢谢 :)

答案1

最小工作示例。假设价格为C5:C23,那么 数组公式D5

=MAX(INDIRECT("C"&ROW()&":C"&(ROW()+MATCH(-1,SIGN(C5:$C$23-C5),FALSE)-2)))

复制下来的结果是:

在此处输入图片描述

请注意,#N/A错误是有意义的,它们表示下面没有比C带有 的单元格左侧列中的价格更低的价格#N/A

** 编辑 ** 评论

在此处输入图片描述

关键点是找到价格低于当前行的行 ( C5)。“下拉索引” - 从当前行到价格较低的行的行数。函数

=MATCH(-1,SIGN(C5:$C$23-C5),FALSE)

1返回在数组中找到第一个完全匹配 ( )的行号(将当前行计为),该行号填充了下方价格数组 ( ) 与当前价格 ( )-1之间的差异符号。C5:$C$23C5

有了“删除索引”,构建删除之前范围的文本引用就很简单了:

=("C"&ROW()&":C"&(ROW()+MATCH(-1,SIGN(C5:$C$23-C5),FALSE)-2))

然后使用INDIRECT()将该文本转换为参考并用 找到所需的最大值MAX()

相关内容