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