ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 32892|回复: 12

[已解决] [求助]中如何计算EAN13位条形码中的校验位

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-1-17 09:02 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在EAN13位条形码中,如990123456789,如何设置公式计算出第13位校验位。谢谢

TA的精华主题

TA的得分主题

发表于 2006-1-17 09:41 | 显示全部楼层

建议你们多在搜索上花点时间,这些校验计算,网上都有.没有excel也有别的,转换一下就行了.以下是根据一个asp代码得到的算法.奇数位求和,偶数位求3倍和,两和相加后再除以10,求余数,再用10减去余数,得到的便是校验码.

=10-MOD(SUMPRODUCT(MID(A1,ROW(1:6)*2-1,1)*1)+SUMPRODUCT(MID(A1,ROW(1:6)*2,1)*3),10)

TA的精华主题

TA的得分主题

发表于 2006-1-17 10:03 | 显示全部楼层
EAN13码的基本结构 EAN条码符号标准版 表示13位数字的EAN条码(EAN-13)称为标准版的EAN条码,其结构如图所示: 左侧空白区 起始符 左侧数据符 中间分隔符 右侧数据符 校验符 终止符 右测空白区 9个模块 3个模块 42个模块 5个模块 35个模块 7个模块 3个模块 9个模块 注意:在EAN码中一个模块的宽度为0.33mm。 EAN码的编码规则 数字符 左侧数据符 右侧数据符 A B C 0 0001101 0100111 1110010 1 0011001 0110011 1100110 2 0010011 0011011 1101100 3 011101 0100001 1000010 4 0100011 0011101 1011100 5 0110001 0111001 1001110 6 0101111 000101 1010000 7 0111011 0010001 1000100 8 0110111 0001001 1001000 9 0001011 0010111 1110100 起始符:101 中间分隔符:01010 终止符:101。 A、B、C中的“0”和“1”分别表示具有一个模块宽度的“空”和“条”。 因为左侧数据编码方式有两种,要按照前置码选其中一种,如表: 前置字符 左侧数据符编码规则的选择 0 A A A A A A 1 A A B A B B 2 A A B B A B 3 A A B B B A 4 A B A A B B 5 A B B A A B 6(中国) A B B B A A 7 A B A B A B 8 A B A B B A 9 A B B A B A EAN标准码的尺寸 宽:全部37.29mm 条码31.35mm 长:数据符条码22.85/23.18mm 起始符/分隔符/终止符24.50mm 全部26.26mm 放大倍数:0.8 ----- 2 2 . EAN条码符号缩短版 表示8位数字的EAN条码(EAN-8)称为缩短版EAN条码,其结构如表所示左侧空白区 起始符 左侧数据符 中间分隔符 右侧数据符 校验符 终止符 右侧空白区 7个模块 3个模块 28个模块 5个模块 21个模块 7个模块 3个模块 7个模块 EAN缩短码的尺寸 宽:条码22.11mm 全部26.73 长:数据符条码18.23/18.56mm 起始符/分隔符/终止符19.88mm 全部21.64mm 放大倍数:0.8 --- 2.0 总结:在EAN标准版中,前置符不用条码符表示。在缩短版中前置符包括在左侧数据符中,用条码符表 示并且左侧数据符均用A组编码规则,右侧数据符均用B组编码规则。 3 . EAN码校验位的计算方法 标准版和缩短版的校验码计算方法相同。 从代码位置序号2开始,所有偶数位的数字代码求和为a。 将上步中的a乘以3为a。 从代码位置序号3开始,所有奇数位的数字代码求和为b。 将a和b相加为c。 取c的个位数d。 用10减去d即为校验位数值。 例:234235654652的校验码的计算如下表: 数据码 校验码 代码位置序号 13 12 11 10 9 8 7 6 5 4 3 2 1 数字码 2 3 4 2 3 5 6 5 4 6 5 2 ? 偶数位   3 + 2 + 5 + 5 + 6 + 2   奇数位 2 + 4 + 3 + 5 + 4 + 5     步骤1:3+2+5+5+6+2=23 步骤2:23*3=69 步骤3:2+4+3+5+4+5=23 步骤4:69+23=92 步骤5:10-2=8 步骤6:校验码为 8
[此贴子已经被作者于2006-1-17 10:07:49编辑过]
KGPjSSmP.gif
EMqMy5NN.gif

TA的精华主题

TA的得分主题

发表于 2006-1-17 10:08 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-1-17 10:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

你的"奇数位 2 + 4 + 3 + 5 + 4 + 5 "错了,应该是{"2";"4";"3";"6";"4";"5"}求出来的和应该是24,而不是23.另外你强调从代码序号位2和3开始奇数位和偶数分别求和,可每次求和时都是6个数,是不是有点矛盾?

TA的精华主题

TA的得分主题

发表于 2006-1-17 11:17 | 显示全部楼层

没有矛盾,你再理解一下。

目前最短的公式

=RIGHT(SUM(LEFT($A$1,{0,1}+{1;3;5;7;9;11})*{9,7}))

还有一个长一个字符的

=RIGHT(SUM(MID($A$1,{0,1}+{1;3;5;7;9;11},1)*{9,7}))

http://club.excelhome.net/dispbbs.asp?boardid=3&replyid=362140&id=73113&page=1&skin=0&Star=2

TA的精华主题

TA的得分主题

发表于 2006-1-18 08:22 | 显示全部楼层

我不是指你的公式有问题,是说描述从第三序数开始,总共12位(不算校验位),那是不是意味着只剩10位,再取奇数位,是不是只有5个,可我们取的却都是6个,对吧?!

公式里使用了简化算法,确实是高.

TA的精华主题

TA的得分主题

发表于 2010-7-16 20:23 | 显示全部楼层
奇数 和偶数 加一起 就取 后面的数 懂么 楼上的那个人 什么 一大篇子 竟扯淡 只有一个公式懂么 不要误人子弟

TA的精华主题

TA的得分主题

发表于 2010-7-16 20:20 | 显示全部楼层
大家好 我是专门学 市场营销的所以对 条形码的检验 比较懂 你们说的都是扯淡 呵呵想知道答案? 加我QQ805230285 对了 刚才你出的题是990123456789 吧答案等于 9

TA的精华主题

TA的得分主题

发表于 2012-11-6 17:18 | 显示全部楼层
一个在线生成EAN-13 条码的生成器就可以解决你的问题啊,给你找了一个网站,你可以看下:http://www.keepautomation.com/online_barcode_generator/ean_13/
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 00:53 , Processed in 0.042163 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表