对多个条件上的行进行条件计数

我想回答这个问题:有多less患者有超过1次扫描? 伪代码:

Countif >1 (Ans = 2. Two patients have 2 or more scans) For each Patient ID, count if "scan" nonblank (Ans: a=1, b=2, c=2, d=1) A | B | C 01 Patient ID | Scan | Other data etc 02 a | | 03 a | 1/1/15 | 04 b | 2/2/15 | 05 b | | 06 b | 3/2/16 | 07 c | 1/3/14 | 08 d | 2/1/12 | 09 c | 1/7/14 | 10 d | | 

这对一个病人来说很容易。 即, =Countifs(A1:10,"a",B1:10,"<>") 。 你如何计算所有患者?

非常感谢!

你将需要一个帮手列 – 参考下面的公式

Helper column =IF(AND(COUNTIF($A$2:$A$10,A2)>1,NOT(ISBLANK(B2)) ),A2,"-")

 =IF(COUNTIF(C2:C10,"-")>0,SUMPRODUCT(1/COUNTIF(C2:C10,C2:C10))-1,SUMPRODUCT(1/COUNTIF(C2:C10,C2:C10))) 

在这里输入图像说明

该公式将需要作为一个数组input(一旦复制和粘贴,而仍然在公式栏按CTRL + SHIFT + ENTER

=SUM(--(FREQUENCY(IF(B2:B10<>"",MATCH(A2:A10,A2:A10,0)),ROW(A2:A10)-ROW(A2)+1)>1))

如果每个病人都有一张纸,可以添加一列,并使用公式=Countifs(A1:10,"patient_id",B1:10,"<>")来计算每个病人的扫描次数,然后使用相同types的公式来计算每个大于1的扫描总和。

病人表

  A | B 01 Patient ID | Scans 02 a | =COUNTIFS(scans!A2:A10; A2;scans!B2:B10;"<>") 03 b | 2 04 c | 2 05 d | 1 06 e | 0 07 f | 0 

扫描表

  A | B | C 01 Patient ID | Scan | Other data etc 02 a | | 03 a | 1/1/15 | 04 b | 2/2/15 | 05 b | | 06 b | 3/2/16 | 07 c | 1/3/14 | 08 d | 2/1/12 | 09 c | 1/7/14 | 10 d | | 

你想在哪里

 =COUNTIF(patients!B2:B6;">1")