例如:
我想计算一个大于60且被诊断为HTN的条目。问题是可能存在多个诊断,并且似乎只计算排在最前面的那些。所以,如果我要进入:
=countifs(A2:A16,"Greater than 60",B2:B16,"HTN")
它只返回“1”,但如果我将HTN移到第三个条目的顶行,它将计为“2”
答案 0 :(得分:1)
Excel将ColA中的合并单元格视为5个单独的单元格,其中顶部单元格的数据“大于60”,其余单元格为空白。由于您将空白与ColB中相应单元格中的空白进行比较,因此不符合COUNTIFS()的条件。一种解决方案是取消合并第一列,填充空白,然后继续使用COUNTIFS()。否则,可以编写宏来满足您的需求。
答案 1 :(得分:0)
使用excel解决难以解决的问题,因为您要检查不同行上的不同条件。超过60的IE可能出现在第2行,HTD可能出现在第3行。
我要解决这个问题的方法是编写一些VB脚本。以下作品:
Sub counter()
Destination = Range("C2").Address 'this is where the script will put the result
condition1 = "Greater than 60"
condition2 = "HTN"
'Please note, condition 1 (age) must be in column A of your spreadsheet and condition 2 (diagnosis) must be in column B.
'You can modify the code below if you want them in different columns
Range("B2").Select
counter = 0
For i = 1 To 500 'number of rows the script will check for
If Range("A" & ActiveCell.Row).Value <> "" Then
field1 = Range("A" & ActiveCell.Row).Value
End If
If field1 = condition1 And ActiveCell.Value = condition2 Then
counter = counter + 1
End If
ActiveCell.Offset(1, 0).Select
Next i
Range(Destination).Value = counter
result = MsgBox(counter & " rows meet the specified conditions." & vbNewLine & " This result has been written to cell " & Destination & " on your spreadsheet")
End Sub
您可以通过点击alt + f11将此代码添加到电子表格中,在项目窗格中右键单击工作簿的名称,然后插入模块。然后,您可以剪切并粘贴此代码并在工作簿中运行它。值得注意的是,我写了脚本来检查500行,你可以通过将for i = 1到500的语句更改为这个检查的行数来增加它。