条件计数超过多个条件的行

时间:2017-01-17 13:15:45

标签: excel excel-formula

我想回答这个问题:有多少病人进行了多次扫描?伪代码:

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,"<>")。您如何为所有患者计算这一点?

非常感谢!

3 个答案:

答案 0 :(得分:1)

您需要一个辅助列 - 请参阅下面的公式

帮助栏=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)))

enter image description here

答案 1 :(得分:1)

公式将需要作为数组输入(一旦复制并粘贴,但仍然在公式栏中点击 CTRL + SHIFT + ENTER

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

答案 2 :(得分:0)

如果每张患者都有一张表,您可以添加一列并使用公式=Countifs(A1:10,"patient_id",B1:10,"<>")计算每位患者的扫描次数,然后使用相同类型的公式计算每次扫描的总和。大于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")