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

Excel统计CIM-10编码I00-I30等疾病序列出现次数求助

统计ICD-10编码子区间出现次数的解决方案

针对单元格含单个/多个ICD-10编码,需统计I00-I30这类子区间出现次数的问题,以下是几种实用方法:

方法一:辅助列分步处理(适合新手)

  1. 拆分编码:假设数据在A列,在B列使用TEXTSPLIT(Excel 365+)拆分每个单元格内的编码:
    =TEXTSPLIT(A1, ", ")
    
    旧版Excel可直接用「数据→分列」功能,按逗号+空格分隔。拆分后每个编码单独占一行。
  2. 判断编码是否在目标区间:在C列添加判断公式,验证编码是否属于I00-I30:
    =AND(LEFT(UPPER(B1), 1)="I", VALUE(MID(B1, 2, 2))>=0, VALUE(MID(B1, 2, 2))<=30)
    
    用UPPER避免大小写干扰,提取编码首字母确认是"I",再将后续两位数字转数值,判断是否在0-30范围内(对应I00到I30)。
  3. 统计符合条件的数量:最后用COUNTIF统计C列中TRUE的个数:
    =COUNTIF(C:C, TRUE)
    

方法二:单数组公式(无需辅助列,Excel 365)

直接用数组公式一次性完成拆分、判断、求和:

=SUM(--(BYROW(A:A, LAMBDA(cell, IF(cell="", 0, SUM(--(AND(LEFT(TEXTSPLIT(cell, ", "),1)="I", VALUE(MID(TEXTSPLIT(cell, ", "),2,2))>=0, VALUE(MID(TEXTSPLIT(cell, ", "),2,2))<=30)))))))

逻辑说明:

  • TEXTSPLIT拆分每个单元格的编码
  • 对每个编码执行区间判断,统计单个单元格内符合条件的编码数
  • 最后累加所有单元格的统计结果

方法三:Google Sheets适配方案

Google Sheets中用SPLIT替代TEXTSPLIT,公式如下:

=SUM(BYROW(A:A, LAMBDA(cell, IF(cell="",0,SUM(--(AND(LEFT(UPPER(SPLIT(cell, ", ")),1)="I", VALUE(MID(SPLIT(cell, ", "),2,2))>=0, VALUE(MID(SPLIT(cell, ", "),2,2))<=30))))))

注意事项

  • 若编码分隔符不是「逗号+空格」,需调整公式中的分隔符参数
  • 若存在不规范编码(如I3而非I03),需先统一编码格式,确保是「字母+两位数字」的标准ICD-10格式

内容的提问来源于stack exchange,提问作者Rahmoune Med El-habib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:10:21