=IF(ABS)公式处理负公差时判定错误的修正方法咨询
制造件尺寸合格判定公式误判修正方案
问题根因
原判定公式存在两处核心逻辑缺陷,是负公差场景误判的直接原因:
- 公式默认公差值为非负的允许偏差绝对阈值,但
ABS(实测值-标称值)的计算结果恒大于等于0,当公差为负值时,非负数 <= 负数的判定条件永远不成立,必然输出Fail。 - 原公式存在引用错位风险:按照给定列规则,公差存储在第3列,但原公式
=IF(ABS(B11-C11)<=D11, "Pass","Fail")引用了第4列(即判定结果输出列自身)的单元格作为公差值,会触发循环引用,进一步导致结果异常。
各列对应规则(按工作表A-D列顺序)
- A列:手动录入的制造件实测尺寸
- B列:VLOOKUP函数从独立工作表调取的图纸标称尺寸
- C列:VLOOKUP函数从独立工作表调取的公差值
- D列:合格判定结果输出列
修正方案
场景1:公差为对称双向公差(即标称值±公差幅宽为合格范围)
该场景下公差的正负号属于无效录入值,仅需对公差值取绝对值消除符号影响,同时修正单元格引用错位问题即可,D列公式调整为:
=IF(ABS(A2-B2)<=ABS(C2), "Pass", "Fail")
公式逻辑:计算实测值与标称值的绝对偏差,和公差的绝对幅宽对比,偏差小于等于幅宽则判定合格,否则不合格,可兼容公差值误录为负的场景。
场景2:公差为单向/非对称公差(如0/-0.2、+0.1/-0.3等)
原ABS偏差对比逻辑不适用于该类公差,需先计算合格尺寸的上下限,再判断实测值是否落在区间内。若C列存储允许的下偏差、新增E列存储允许的上偏差,判定公式调整为:
=IF(AND(A2>=B2+C2, A2<=B2+E2), "Pass", "Fail")
公式逻辑:直接校验实测值是否≥「标称值+下偏差」、≤「标称值+上偏差」,完全不受公差正负符号影响,判定逻辑和机械加工图纸的公差标注规则完全一致。
注:如果当前公差列是将上下偏差以文本形式存储(如
+0.1/-0.2),需先拆分提取上下偏差的数值,再套用上述区间判定公式。
内容的提问来源于stack exchange,提问作者Matthew Perryman
相关产品推荐
相关产品推荐

