行为审查:现公式把完全相同的查找重复两次,但不符合所述未知编号规则。XLOOKUP 未找到键时返回 0,外层比较随后把它当作真实零价格。保持行为的 LET 会保留这个缺陷,因此必须把修正单独说明。
H2 修正后的 LET 公式:=IF(B2="","",LET(productId,B2,quantity,E2,unitPrice,XLOOKUP(productId,Products!$A$2:$A$2000,Products!$D$2:$D$2000,NA(),0),IFERROR(IF(unitPrice>0,ROUND(quantity*unitPrice,2),0),"待检查")))。productId 和 quantity 记录相对行输入;unitPrice 只对固定来源区域执行一次精确查找。NA() 让未知键进入 IFERROR,而真实数字 0 仍返回 0。有意行为变化是未知编号:0 → 待检查。空白、真实零值、舍入和输入错误行为保持。
兼容性:适用于所述 Microsoft 365 环境;只有未来接收者不支持 LET 时才保留修正后的非 LET 版。因每个非空行从两次查找减为一次,性能可能改善,但没有工作簿测量就不能声称具体比例。
等价/修正测试:P-10 ×3 → 修正旧版与 LET 均为 37.50;P-FREE ×2 → 0;P-99 → 待检查(有意修复);空编号 → 空白且不查找;有效正价下数量为文本“three” → 待检查;复制到 H3 时 productId/quantity 变为 B3/E3,而 Products 区域保持固定。信任单结果查找前,还要单独核验重复产品编号。