使用ADDRESS函数定义MIN范围

时间:2013-09-22 13:32:30

标签: excel excel-formula

我是这个论坛的新手。我有一个电子表格,根据未来事件预测银行余额。我想知道未来的最低余额,以确保我不会超支。

我可以使用MIN在整个日期范围内找到帐户中的最小值,但这包括过去的日期。我想根据MIN函数改变TODAY参数的范围。

我可以使用=ADDRESS(MATCH(DATEVALUE(TEXT(TODAY(),"dd mmm yy")),C:C,0),COLUMN(E2),4)返回我今天要使用的单元格引用,其中列C包含日期,列E表示银行余额。但是,我无法在MIN公式中使用单元格的值。

因此,目前,MIN(E10-E121)适用于过去和未来的级别,但如果今天日期的ADDRESS例程在单元格E90中返回A1,则无法引用{在A1函数中{1}}获取范围MIN

我已尝试E90:E121,但这会在INDIRECT处提供单元格的值。

2 个答案:

答案 0 :(得分:2)

假设您的数据位于第2行到第100行,这将为您提供E列中任何位置的最小数量,其中C列中的日期为今天或更晚。它是array formula,因此必须使用 Ctrl - Shift - 输入输入:

=MIN(IF(C2:C100>=TODAY(),E2:E100))

编辑:

在回复您关于如何使用范围中的一个单元格进行操作的评论时,这会使用Match来查找C列中小于或等于Today()的最后一个单元格然后使用它作为列{E中范围规范的前半部分的Index。它要求列按日期排序,升序,如果今天不在列C中,它将从列中的最高行开始C与今天之前的日期。您可以摆弄Match - 1,0,或-1中的最后一个参数,但如果C总是包含今天的日期,则可以使用:

=MIN(INDEX(E2:E100,MATCH(TODAY(),C2:C100,1)):E100)

答案 1 :(得分:0)

另一个不涉及数组公式的解决方案(但有一些更复杂的公式):

=SUMPRODUCT(MIN((C2:C100<TODAY())*(1+MAX(E2:E100))+(E2:E100)*(C2:C100>=TODAY())))