查找最大发生的代码

时间:2016-01-18 03:08:30

标签: excel excel-formula

我在

下有一张excel表
Name    Code    Date    Profit on particular day        Name    Output
A   2400    1/11/2016   38500       A   Nil
A   2300    1/14/2016   26750       B   1240
A   2200    1/14/2016   21250       C   95
A   2300    1/11/2016   19250           
A   2250    1/14/2016   14000           
A   2100    1/14/2016   11750           
B   1220    1/15/2016   750         
B   1280    1/11/2016   4875            
B   1360    1/12/2016   4875            
B   1380    1/11/2016   4500            
B   1320    1/11/2016   3375            
B   1280    1/12/2016   2250            
B   1340    1/11/2016   2250            
B   1340    1/14/2016   2250            
B   1240    1/15/2016   50000           
B   1260    1/15/2016   0           
C   85  1/14/2016   324000          
C   85  1/13/2016   282000          
C   85  1/11/2016   246000          
C   95  1/15/2016   6000000         
C   90  1/12/2016   156000          
C   90  1/14/2016   138000          

在上面我想写一个公式,例如name" A" - 搜索最大利润,如果该利润恰好是日期中的最大值,则按照第二列中的说明给出代码。例如,对于名称" A"最大利润是38500,发生在2016年1月11日,这不是日期栏中与姓名相关的最新日期" A"因此输出为零。对于名称" B"最大利润是50000,发生在2016年1月15日,恰好是日期栏中与名称B相关的最新日期,因此输出是代码栏的内容,即1240。

1 个答案:

答案 0 :(得分:1)

AGGREGATE function可以快速处理具有单个或多个条件的伪MINIFS / MAXIFS。

在H2中作为标准配方,

=IFERROR(AGGREGATE(15, 6, B$2:B$23/((A$2:A$23=G2)*
                                    (C$2:C$23=AGGREGATE(14, 6, C$2:C$23/(A$2:A$23=G2), 1))*
                                    (D$2:D$23=AGGREGATE(14, 6, D$2:D$23/(A$2:A$23=G2), 1))), 1)
         ,"nil")

aggregate_minifs_maxifs
AGGREGATE function作为MINIFS和MAXIFS

<强> Dynamic ranging

上述公式可以通过以下修改自动补偿添加到现有公式底部的新数据。

=IFERROR(AGGREGATE(15, 6, B$2:INDEX(B:B, MATCH(1E+99,D:D ))/((A$2:INDEX(A:A, MATCH(1E+99,D:D ))=G2)*
     (C$2:INDEX(C:C, MATCH(1E+99,D:D ))=AGGREGATE(14, 6, C$2:INDEX(C:C, MATCH(1E+99,D:D ))/(A$2:INDEX(A:A, MATCH(1E+99,D:D ))=G2), 1))*
     (D$2:INDEX(C:C, MATCH(1E+99,D:D ))=AGGREGATE(14, 6, D$2:INDEX(D:D, MATCH(1E+99,D:D ))/(A$2:INDEX(A:A, MATCH(1E+99,D:D ))=G2), 1))), 1)
  ,"nil")

aggregate_minifs_maxifs_dynamic_range
AGGREGATE function,动态范围