我有一个包含我们所有产品及其 UPC 代码的电子表格,其中大多数是 11 位代码,但缺少校验位,而这正是我们正在进行的项目所需要的。
我尝试过使用许多不同的公式,例如:
=MOD(10 - MOD(SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*{3,1},10),10),10)
=A1&MOD(10-MOD(SUMPRODUCT(MID(A1,ROW($1:$11),1)*(1+2*MOD(ROW($1:$11),2))),10),10)
UPC 代码是 72527273070,我知道校验位是 6,我只需要在 Excel 中计算它的方法。
答案1
第一个对我来说似乎效果不太好(这有什么意义INDIRECT
?)但第二个对我来说效果很好,我在网上找到的这个想法的其他变体也是如此:
=A2&MOD(10-MOD(SUMPRODUCT(MID(A2,ROW($1:$11),1)*(1+2*MOD(ROW($1:$11),2))),10),10)
=A2&MOD(-SUM(MID(TEXT(A2,"00000000000\0"),{1,3,5,7,9,11;2,4,6,8,10,12},1)*{3;1}),10)
=A2&10-MOD(SUMPRODUCT(MID(A2,{1,2,3,4,5,6,7,8,9,10,11},1)*{3,1,3,1,3,1,3,1,3,1,3}),10)
您显示的错误听起来更像是您输入错误。只需尝试从我的答案中复制/粘贴(每行 3 个单独复制)并将其粘贴到第 2 行(即B2
)A2
UPC 所在的位置。