具有索引/匹配格式的Max函数不会返回最大值

时间:2019-08-20 20:43:39

标签: excel-formula

我有包含日期​​和时间列表的数据。大多数日期都有多个匹配项。我想返回与每个日期相对应的最早时间和最晚时间。 我需要在不使用数组公式的情况下执行此操作。

我使用了以下公式的最大和最小版本:

  

MAX((INDEX('2025'!P:P,MATCH(Tables!BZ5,'2025'!O:O,0),0))))

此公式仅返回与日期相关的第一时间

  

MAX(INDEX(('2025'!O:O=Tables!BZ4)*'2025'!P:P,0))

此公式返回#VALUE!错误

  

MAX(INDEX(('2025'!O2:O450=Tables!BZ4)*'2025'!P2:P450,0))

此公式返回0。

-预期结果-

数据:

Dates    Time    
5/9/19   3:30 PM    
5/9/19   11:30 AM    
5/9/19   2:00 PM

预期结果

Date       Earliest time      Latest time    
5/9/19     11:30 AM           3:30 PM

根据其他情况,上述公式对其他人也适用,但是请告知我是否缺少语法或其他问题。

1 个答案:

答案 0 :(得分:2)

如果您有Office 365,请使用MAXIFS()/ MINIFS():

=MAXIFS('2025'!P:P,'2025'!O:O,Tables!BZ4)
=MINIFS('2025'!P:P,'2025'!O:O,Tables!BZ4)

如果没有,则可以使用AGGREGATE

=AGGREGATE(14,7,'2025'!P2:P450/('2025'!O2:O450=Tables!BZ4),1)
=AGGREGATE(15,7,'2025'!P2:P450/('2025'!O2:O450=Tables!BZ4),1)

如果您的Excel在2010年之前,那么您将需要一个数组公式MAX(IFS()):

=MAX(IF('2025'!O2:O450=Tables!BZ4,'2025'!P2:P450))
=MIN(IF('2025'!O2:O450=Tables!BZ4,'2025'!P2:P450))

最后两个必须在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter进行确认。