You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何用COUNTIF函数优先统计最新血红蛋白检测结果

解决方案

核心思路是优先使用K列的检测值(当K列非空时),否则使用E列的首次检测值,基于这个统一的"有效检测值"来统计各区间的数量。以下是适配不同Excel版本的公式:

通用版本(兼容所有Excel版本)

适用于Excel 2019及更早版本:

  • 统计血红蛋白值>12的数量:
    =SUMPRODUCT(--(IF(K2:K121<>"",K2:K121,E2:E121)>12))
    
  • 统计血红蛋白值在10~12之间(含边界)的数量:
    =SUMPRODUCT(--(IF(K2:K121<>"",K2:K121,E2:E121)>=10),--(IF(K2:K121<>"",K2:K121,E2:E121)<=12))
    
  • 统计血红蛋白值<10的数量:
    =SUMPRODUCT(--(IF(K2:K121<>"",K2:K121,E2:E121)<10))
    

公式逻辑说明

  1. IF(K2:K121<>"",K2:K121,E2:E121):对每一行判断K列是否有值,有则取K列数据,无则取E列数据,生成一组"有效检测值"。
  2. --(...):将布尔判断结果(TRUE/FALSE)转换为数值1/0,方便SUMPRODUCT汇总。
  3. SUMPRODUCT:遍历所有行,汇总符合条件的行数。

简化版本(仅适用于Excel 365/2021)

利用动态数组函数可以让公式更简洁:

  • 统计血红蛋白值>12的数量:
    =COUNT(FILTER(IF(K2:K121<>"",K2:K121,E2:E121),IF(K2:K121<>"",K2:K121,E2:E121)>12))
    
  • 统计血红蛋白值在10~12之间(含边界)的数量:
    =COUNT(FILTER(IF(K2:K121<>"",K2:K121,E2:E121),(IF(K2:K121<>"",K2:K121,E2:E121)>=10)*(IF(K2:K121<>"",K2:K121,E2:E121)<=12)))
    
  • 统计血红蛋白值<10的数量:
    =COUNT(FILTER(IF(K2:K121<>"",K2:K121,E2:E121),IF(K2:K121<>"",K2:K121,E2:E121)<10))
    

逻辑说明

FILTER函数先筛选出符合区间条件的"有效检测值",再用COUNT统计筛选结果的行数,逻辑更直观。

内容的提问来源于stack exchange,提问作者Sophie Thorson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 10:25:08