条件MAX函数

时间:2017-08-14 15:35:43

标签: excel vba excel-vba excel-formula array-formulas

我使用数组公式根据列(客户端名称)从列(Count)返回MAX值。每个客户都有多次重复的帐号。我打算返回客户端列​​(Acct#)中存在的帐号的计数。

我能够获得满意的结果 除了 ,当同一个客户的两个或多个帐号具有相同的计数时,我想返回{{ 1}}或BLANK但不是MAX计数。

以下是一个示例: Acct#4565& XYZ LTD重复7898次6次。自从,为XYZ LTD。 acct#重复的最长时间是6但是多个帐户重复6次,我想在列中返回NULL或BLANK(Count MAX)

包含数组公式的表:

NULL

表格结果:

Client Name Acct #   Count                       Count Max
XYZ LTD.    1234    =COUNTIFS(B:B,B2,A:A,A2)    =MAX(IF(A:A=A2,C:C))
XYZ LTD.    4565    =COUNTIFS(B:B,B3,A:A,A3)    =MAX(IF(A:A=A3,C:C))
XYZ LTD.    4565    =COUNTIFS(B:B,B4,A:A,A4)    =MAX(IF(A:A=A4,C:C))
XYZ LTD.    4565    =COUNTIFS(B:B,B5,A:A,A5)    =MAX(IF(A:A=A5,C:C))
XYZ LTD.    4565    =COUNTIFS(B:B,B6,A:A,A6)    =MAX(IF(A:A=A6,C:C))
XYZ LTD.    1234    =COUNTIFS(B:B,B7,A:A,A7)    =MAX(IF(A:A=A7,C:C))
XYZ LTD.    1234    =COUNTIFS(B:B,B8,A:A,A8)    =MAX(IF(A:A=A8,C:C))
XYZ LTD.    4565    =COUNTIFS(B:B,B9,A:A,A9)    =MAX(IF(A:A=A9,C:C))
XYZ LTD.    1234    =COUNTIFS(B:B,B10,A:A,A10)  =MAX(IF(A:A=A10,C:C))
XYZ LTD.    4565    =COUNTIFS(B:B,B11,A:A,A11)  =MAX(IF(A:A=A11,C:C))
XYZ LTD.    7898    =COUNTIFS(B:B,B12,A:A,A12)  =MAX(IF(A:A=A12,C:C))
XYZ LTD.    7898    =COUNTIFS(B:B,B13,A:A,A13)  =MAX(IF(A:A=A13,C:C))
XYZ LTD.    7898    =COUNTIFS(B:B,B14,A:A,A14)  =MAX(IF(A:A=A14,C:C))
XYZ LTD.    7898    =COUNTIFS(B:B,B15,A:A,A15)  =MAX(IF(A:A=A15,C:C))
XYZ LTD.    7898    =COUNTIFS(B:B,B16,A:A,A16)  =MAX(IF(A:A=A16,C:C))
XYZ LTD.    7898    =COUNTIFS(B:B,B17,A:A,A17)  =MAX(IF(A:A=A17,C:C))

在此示例中,列(Count Max)中的预期结果为空值。

或者这可以使用VBA吗?

1 个答案:

答案 0 :(得分:0)

选择适合您的公式并将其放入此公式中,替换您的公式

=IF(COUNTIFS($A$2:$A2,$A2,$B$2:$B2,$B2)>1,"",YOUR FORMULA)

根据需要复制。它会显示""当重复帐户名称和#时,以及第一个实例时公式的值。

proof of concept

您使用的公式是数组公式,因此您必须使用 CTRL + SHIFT + ENTER ,而不仅仅是 ENTER 当你完成。如果操作正确,它将在公式周围添加{},无法手动添加。这将是单细胞阵列公式。为第一个单元格完成此操作后,根据需要复制单元格。