Excel中按SubjID统计G_R_B占比并分类(含重复ID处理)
处理重复SubjID的质量分类方案
方法一:Excel 365/2021 一键数组公式(无需辅助列)
假设你的SubjID在A列,质量评级(good/bad)在B列,直接在空白单元格(比如D2)输入以下公式,回车后自动生成所有唯一SubjID的分类结果:
=BYROW(UNIQUE(A:A),LAMBDA(id,LET(good_cnt,COUNTIFS(A:A,id,B:B,"good"),total_cnt,COUNTIF(A:A,id),ratio,good_cnt/total_cnt,IF(ratio>0.5,"G",IF(ratio=0.5,"R","B")))))
公式逻辑:
UNIQUE(A:A):提取所有不重复的SubjIDBYROW:遍历每个唯一ID,执行后续统计逻辑LET:定义临时变量简化公式,分别统计该ID的good数量、总数据行数,计算占比- 最后用IF嵌套判断占比,输出对应的G/R/B标签
方法二:分步辅助列(兼容所有Excel版本)
如果用的是旧版Excel,没有动态数组函数,按以下步骤操作:
- 提取唯一SubjID:在D2输入
=INDEX(A:A,MIN(IF(COUNTIF(D$1:D1,A:A)=0,ROW(A:A),99999))),按Ctrl+Shift+Enter(数组公式)下拉,直到出现错误值后删除错误行,得到所有唯一ID - 统计good数量:E2输入
=COUNTIFS(A:A,D2,B:B,"good"),下拉填充 - 统计总数量:F2输入
=COUNTIF(A:A,D2),下拉填充 - 计算占比并分类:G2输入
=IF(E2/F2>0.5,"G",IF(E2/F2=0.5,"R","B")),下拉填充
方法三:数据透视表快速统计
- 选中整个数据区域,点击「插入」→「数据透视表」
- 行区域拖入SubjID,值区域拖入2次质量列:
- 第一个值字段:设置为「计数」,重命名为「总数量」
- 第二个值字段:点击「值字段设置」→「值筛选」→「等于」,输入"good",重命名为「good数量」
- 在透视表右侧新增列,手动计算占比(good数量/总数量),再用IF函数完成分类
内容的提问来源于stack exchange,提问作者florence-y
相关产品推荐
相关产品推荐

