2012-10-27 50 views
1

我有三列,我想要中的每个类别的Col2的最大值的总和,其中Col3等于x。一列中的最大值基于其他两列

我无法添加第4列以获取最大值。

Col1 Col2 Col3 
a  3  x 
b  2  x 
c  2  x 
a  1  x 
b  3  x 
c  1  y 
a  2  y 
b  1  y 
c  3  y 

在这个例子中我寻找答案是8:

  • 3为一个,
  • 对于b
  • 加3,
  • 加上2℃。

我该怎么做?

+1

你到目前为止尝试过什么吗?你介意使用UDF(即宏可以在你的工作表上激活)吗? – JMax

+0

是的,谢谢,我有 – user1778727

回答

2

你可以用CTRL + SHIFT尝试这种+在A2:C10数据ENTER和D1 =“X”:

=SUM(IF(C2:C10=D1,IF(COUNTIFS(A2:A10,A2:A10,B2:B10,">"&B2:B10,C2:C10,D1)=0,B2:B10))) 

但要注意,如果有可能是一类以上的最大值这个总结多值。综上所述独特最大值每个类别可以尝试这种替代(也与CSE):

=SUM(IF(C2:C10=D1,(MATCH(A2:A10,IF(COUNTIFS(A2:A10,A2:A10,B2:B10,">"&B2:B10,C2:C10,D1)=0,A2:A10),0)=ROW(A2:A10)-MIN(ROW(A2:A10))+1)*B2:B10)) 

例如改变从3中的第一值设置为1给人的第一公式7和6中的第二个。

+0

+1,做得很好lori_m - 我的目标是像那样的自己,但无法到达......... –

+0

太棒了!谢谢。两者都很好,我可以使用第一个,因为最大值是唯一的。但是,我确实有一个问题,因为我拥有30,000多行,并且它在3000到4000行之间的某处停止工作,然后我得到“Excel试图计算一个或多个公式时耗尽了资源”。有没有办法解决? – user1778727

+0

我调整了公式以使用COUNTIFS函数而不是以前的矩阵方法。如果这仍然太慢,我会建议使用字典编写UDF来存储每个类别的最大值。 –