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

Excel中如何比对两列数据并统一输出PASS/FAIL结果

批量比对两列数据并统一输出PASS/FAIL解决方案

问题原因

你之前尝试的COUNTIF公式无效,核心原因是:

  • COUNTIF无法直接处理数组运算(比如ABS(G91:G102-H91:H102)生成的差值数组)
  • 语法上COUNTIF的条件参数需要用引号包裹(比如"<0.01"),但即便修正语法,它也不支持对数组的逐元素判断统计

可行公式方案

方案1:SUMPRODUCT 通用版(兼容所有Excel版本)

使用SUMPRODUCT统计不符合条件的数据对数量,若为0则输出PASS:

=IF(SUMPRODUCT(--(ABS(G91:G102-H91:H102)>0.01))=0,"PASS","FAIL")
  • --(ABS(...)>0.01):将「差值绝对值超过0.01」的逻辑判断结果转为1(不符合)或0(符合)
  • SUMPRODUCT:对所有1/0求和,若结果为0,说明所有数据对都符合要求

方案2:MAX 简洁版(Excel 2019及以上/365)

只要所有数据对的最大差值绝对值≤0.01,就说明全部符合:

=IF(MAX(ABS(G91:G102-H91:H102))<=0.01,"PASS","FAIL")
  • 此公式利用数组运算特性,直接计算所有差值绝对值的最大值,判断是否满足阈值

方案3:BYROW+ALL 动态数组版(Excel 365专属)

通过动态数组函数逐行判断并统一验证:

=IF(ALL(BYROW(G91:G102:H91:H102,LAMBDA(row,ABS(INDEX(row,1)-INDEX(row,2))<=0.01))),"PASS","FAIL")
  • BYROW:遍历每一行数据,用LAMBDA计算该行两列的差值绝对值是否符合要求
  • ALL:验证所有行的判断结果是否全为TRUE

注意事项

  • 若数据范围存在空值,可在公式中加入非空判断,比如方案1可修改为:
    =IF(SUMPRODUCT(--(ABS(G91:G102-H91:H102)>0.01)*(G91:G102<>"")*(H91:H102<>""))=0,"PASS","FAIL")
    
  • 确保G91:G102和H91:H102的范围完全对应,避免行数不一致导致错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 00:46:29