Excel论坛:CountifS +多个标准+不同的计数

我正在寻找一个公式计算:不同的计数+多个标准Countifs()做到了,但不包括不同的计数…

这是一个例子。

我有一个表格,我要计算满足多个条件一列A和B的不同项目(列项目)的数量:A> 2和B <5。

在这里input图像说明

Line Item ColA ColB 1 QQQ 3 4 2 QQQ 3 3 3 QQQ 5 4 4 TTT 4 4 5 TTT 2 3 6 TTT 0 1 7 XXX 1 2 8 XXX 5 3 9 zzz 1 9 

Countifs以这种方式工作:COUNTIFS([ColumnA],标准A,[ColumnB],标准B)

COUNTIFS([ColumnA],> 2,[ColumnB],<5)

返回:第1,2,4,5,8行=> Count = 5

我怎样才能添加一个不同的计数函数基于项目列?

第1,2行是唯一的项目QQQ

第4,5行是在一个独特的项目TTT

第8行在一个唯一的项目XXX上

返回Count = 3

我怎么算3?

谢谢

您可以下载Excel文件@ Excel文件

丑陋的公式,但它的作品。

 =SUM(((FREQUENCY(IF(C2:C10>2,1,0)*IF(D2:D10<5,1,0)*(COUNTIF(B2:B10,">"&B2:B10)+1),ROW(B2:B10)-ROW(B2)))*(ROW(B2:B11)-ROW(B2))>0)*1) 

我将从标准IFS开始:

 IF(C2:C10>2,1,0)*IF(D2:D10<5,1,0) 

为满足两个条件的行提供1和0的数组。 ARRAY = {1; 1; 1; 1; 0; 0; 0; 1; 0}

其中B2:B10是项目栏,countif公式:

 COUNTIF(B2:B10,">"&B2:B10) 

返回{6; 6; 6; 3; 3; 3; 1; 1; 0},其中数字等于B2:B10中项目值的数量,按字母顺序小于testing项目值。

  • QQQ去6 [3“TTT”,2“XXX”,1“zzz”]
  • TTT到3 [2“XXX”,1“zzz”]
  • XXX进入1 [1“zzz”]
  • zzz变为0 [0小于“zzz”]

需要在此数组中添加1以确保不存在0值:{7; 7; 7; 4; 4; 4; 2; 2; 1}。

所以当乘以标准和countif声明:

 (IF(C2:C10>2,1,0)*IF(D2:D10<5,1,0)*(COUNTIF(B2:B10,">"&B2:B10)+1) 

你得到ARRAY = {7; 7; 7; 4; 0; 0; 0; 2; 0}。

 FREQUENCY(ARRAY,ROW(B2:B10)-ROW(B2)) 

ROW(B2:B10)-ROW(B2)将频点设置为{0; 1; 2; 3; 4; 5; 6; 7; 8}。 所以频率公式的输出是{4; 0; 1; 0; 1; 0; 0; 3; 0; 0},其中最后的0对于所有大于8的值。

((ROW(B2:B11)-ROW(B2)> 0)* 1)等于{0; 1; 1; 1; 1; 1; 1; 1; 1; 1}。 将ARRAY乘以这个数字将在开始时删除0计数:ARRAY = {0; 0; 1; 0; 1; 0; 0; 3; 0; 0}。 [注意:B11是最低项目列单元格+ 1,因为从超过8的值的频率公式添加了数组值]

(ARRAY)> 0)* 1 = {0; 0; 1; 0; 1; 0; 0; 1; 0; 0}

SUM this = 3。

按Ctrl + Shift + Enter,因为它是一个数组公式。

cmd + shift +进入mac。

你可以试试这个:

=SUMPRODUCT(1/COUNTIF(B2:B10,B2:B10))

信用到期,但是…我发现它在这里:

https://exceljet.net/formula/count-unique-values-in-a-range-with-countif