基于列值编写Excel IF语句适配REDCAP诊断测试需求
Excel 诊断结果匹配与错误显示解决方案(仅用IF/AND/OR函数)
一、正确诊断分配到指定单元格
假设你需要在C2-C6分别对应显示正确诊断3、5、6、7、8(即C2对应3,C3对应5,以此类推),每个单元格的公式逻辑为:检查用户输入的B2-B6区域是否包含对应正确值,存在则显示该值,否则留空。
对应公式如下:
- C2(匹配正确诊断3):
=IF(OR(B2=3,B3=3,B4=3,B5=3,B6=3),3,"") - C3(匹配正确诊断5):
=IF(OR(B2=5,B3=5,B4=5,B5=5,B6=5),5,"") - C4(匹配正确诊断6):
=IF(OR(B2=6,B3=6,B4=6,B5=6,B6=6),6,"") - C5(匹配正确诊断7):
=IF(OR(B2=7,B3=7,B4=7,B5=7,B6=7),7,"") - C6(匹配正确诊断8):
=IF(OR(B2=8,B3=8,B4=8,B5=8,B6=8),8,"")
二、错误诊断对应显示
在D2-D6区域显示用户输入的错误诊断(即不在{3,5,6,7,8}范围内的输入值),每个单元格检查对应B列输入是否属于错误值,是则显示该值,否则留空。
对应公式如下:
- D2(检查B2输入):
=IF(AND(B2<>3,B2<>5,B2<>6,B2<>7,B2<>8),B2,"") - D3(检查B3输入):
=IF(AND(B3<>3,B3<>5,B3<>6,B3<>7,B3<>8),B3,"") - D4(检查B4输入):
=IF(AND(B4<>3,B4<>5,B4<>6,B4<>7,B4<>8),B4,"") - D5(检查B5输入):
=IF(AND(B5<>3,B5<>5,B5<>6,B5<>7,B5<>8),B5,"") - D6(检查B6输入):
=IF(AND(B6<>3,B6<>5,B6<>6,B6<>7,B6<>8),B6,"")
原公式问题说明
你之前的公式逻辑混乱:仅针对正确值3做了多层判断,且错误值仅判断B2是否为错误并显示0,既没有覆盖所有正确值的匹配,也没有实现所有错误输入的对应显示。上述方案通过拆分正确值匹配和错误值检查的逻辑,完全使用IF/AND/OR函数实现需求。
内容的提问来源于stack exchange,提问作者Conrad K
相关产品推荐
相关产品推荐

