将 MIN 函数与 2 个匹配/索引函数一起使用

Using MIN function with 2 match/index functions

提问人:John 提问时间:11/6/2023 最后编辑:Mayukh BhattacharyaJohn 更新时间:11/6/2023 访问量:45

问:

使用此 INDEX/MATCH/MAX 函数获取下表的正确输出

=INDEX($B$2:$B$10000,MATCH(MAX(INDEX(($A$2:$A$10000=$F1)*$D$2:$D$10000,)),INDEX(($A$2:$A$10000=$F1)*$E$2:$D$10000,),0))

enter image description here

1998 年 11 月 4 日输出为 11:30

问题是:当我将公式从 Col D(High) 更改为 Col E(Low) 并使用 MIN 而不是 MAX 时,我得到的结果不正确:10:00 而不是 15:00

使用什么正确的公式从 Col E 中的 MIN 中获取每个日期的正确时间?

谢谢

John

Excel 索引 excel-formula 匹配 min

评论


答:

0赞 Mayukh Bhattacharya 11/6/2023 #1

尝试使用函数:AGGREGATE()

enter image description here


• 细胞中使用的配方H2

=AGGREGATE(15,6,$B:$B/($E:$E=AGGREGATE(15,6,$E:$E/(G2=$A:$A),1)),1)

&,enter image description here


• 细胞中使用的配方I2

=AGGREGATE(14,6,$B:$B/($D:$D=AGGREGATE(14,6,$D:$D/(G2=$A:$A),1)),1)

注意:使用 aka 会更好,建议不要使用整个范围,对空白行进行不必要的迭代,也就是说转换源数据并使用以下方式:Structured ReferenceTables

enter image description here


• 最小值

=AGGREGATE(15,6,High_Low_Table[Time]/(High_Low_Table[Low]=
 AGGREGATE(15,6,High_Low_Table[Low]/(G2=High_Low_Table[Date]),1)),1)

• 对于最大

=AGGREGATE(14,6,High_Low_Table[Time]/(High_Low_Table[High]=
 AGGREGATE(14,6,High_Low_Table[High]/(G2=High_Low_Table[Date]),1)),1)

根据您的套装、单元格引用和范围相应地更改源表名称。


评论

0赞 John 11/6/2023
当我使用这个公式时:=AGGREGATE(14,6,$B:$B/($D:$D=AGGREGATE(14,6,$D:$D/(G2=$A:$A),1)),1)我得到的输出是16:00。我做错了什么?
0赞 Mayukh Bhattacharya 11/6/2023
哪一天?@John。正如你所看到的,显示for的屏幕截图,值为while,它将是值16:0011/5/1998High Column113.8111/4/199811:30113.O9
0赞 Mayukh Bhattacharya 11/6/2023
如果您不使用或需要在退出编辑模式时点击++,也可能@John。MS365Excel 2021CTRLSHIFTENTER