Indexing 返回变量日期之前的最大值(Excel 2010)

Indexing 返回变量日期之前的最大值(Excel 2010),indexing,excel-formula,max,match,min,Indexing,Excel Formula,Max,Match,Min,如何将范围内的最大值作为变量日期的函数返回 以下是一组示例数据: ID Date Value A001 06-Jan 0.90 A001 13-Jan 0.95 A002 23-Jun 1.00 B001 02-Jun 0.90 C001 23-Jun 1.00 如果用户想知道A001在2月10日的最新值是多少,那么返回的值将是0.95 如果用户想知道截至6月30日,C001的

如何将范围内的最大值作为变量日期的函数返回

以下是一组示例数据:

ID        Date       Value
A001      06-Jan     0.90 
A001      13-Jan     0.95
A002      23-Jun     1.00
B001      02-Jun     0.90
C001      23-Jun     1.00
如果用户想知道A001在2月10日的最新值是多少,那么返回的值将是0.95

如果用户想知道截至6月30日,C001的最新值是多少,将返回1.00

我的尝试:

=INDEX(MAX(Entry[Value]),MATCH(UserSelectedDate,Entry[Date],1)))

因此,假设条目[Value]和条目[Date]是有效的范围,并且UserSelectedDate是有效的命名单元格。你的公式是投一个裁判!错误,因为MAX返回单个值。因此,当该单个值用作索引函数中的查找范围时,任何大于1的匹配函数返回值都将是大于查找范围大小的索引。如果正如我们所讨论的,您只想获取与用户选择日期之前的最后一个日期相关联的值,请使用以下命令:

=INDEX(Entry[Value],MATCH(UserSelectedDate,Entry[Date],1)))
另一方面,如果您真的需要在所述日期之前获得所有值的最大值,您可能希望达到以下效果:

=MAX(INDIRECT("$G2:$G"&(MATCH(UserSelectedDate,$F$2:$F$5,1)+1)))

以下数组公式用于在多个/变量条件下返回最大值/大值:

例如,应从日期子集返回最大值:

={ MAX( Table[Values] * (VariableDate >= Table[Dates]) * (Table[Criteria1Range]=[Criteria1]))}
公式结构:


最大值*布尔值1*布尔值2*..*布尔N

那么。。。你在看什么?这是一个错误吗?1月10日是否返回0.65?返回一个REF错误。为什么要寻找最大值?你不仅仅是在寻找与用户选择日期之前的最后一个日期相关联的值吗?是的……所以最大值必须在等式的日期端?似乎两者都不能正常工作。我在问题后面添加了一个更直接的示例。使用第一个示例,我尝试:=INDEXEntry[Value],匹配[UserSelectedID&UserSelectedDate,条目[ID]&条目[Date]+1,1+1到条目[Date]增加了日期的包容性。从这开始,我一直得到0.00。好吧,让我们确保我遵循…现在ID也必须在查找中匹配?正确,我在开始时没有提到这一点,因为我习惯于基于多个标准(如ID)获取数据子集。获取变量日期前的最大值是我一直坚持的方向当我指定了3月16日的任意日期时,公式应该返回0.95。在你的日期包容性…它们包括哪个方向??如果ID列中的所有内容都是A001,而我们只是查找1月13日的日期,那么会返回什么值??