Foxtable(狐表)用户栏目专家坐堂 → [求助]excel13位条码校验码函数转狐表表达式


  共有2351人关注过本帖树形打印复制链接

主题:[求助]excel13位条码校验码函数转狐表表达式

帅哥哟,离线,有人找我吗?
lidusan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:1201 威望:0 精华:0 注册:2015/8/10 22:49:00
[求助]excel13位条码校验码函数转狐表表达式  发帖心情 Post By:2016/2/26 19:23:00 [只看该作者]

在网上搜到excel的13位条码校验函数=RIGHT(SUM(LEFT(A2,{0,1}+{1;3;5;7;9;11})*{9,7}))
和校验规则如下:
EAN-13码校验位计算方法 
代码位置序号是指包括校验码在内的,由右至左的顺序号(校验码的代码位置序号为1)。
校验码的计算步骤如下:
a.从代码位置序号2开始,所有偶数位的数字代码求和。
b.将步骤a的和乘以3。
c.从代码位置序号3开始,所有奇数位的数字代码求和。
d.将步骤b与步骤c的结果相加。
e.用大于或等于步骤d所得结果且为10最小整数倍的数减去步骤d所得结果,其差即为所求校验码的值。
实例分析:
商品条码标准版和缩短版的校验码计算方法相同。 
从代码位置序号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
13位条码为:2342356546528
求大师帮忙看看如何使用表达式校验条码正确性.谢谢!
[此贴子已经被作者于2016/2/26 19:32:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lidusan
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:1201 威望:0 精华:0 注册:2015/8/10 22:49:00
  发帖心情 Post By:2016/2/26 19:26:00 [只看该作者]

为什么上传不了附件了?

 回到顶部
帅哥哟,离线,有人找我吗?
lidusan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:1201 威望:0 精华:0 注册:2015/8/10 22:49:00
  发帖心情 Post By:2016/2/26 19:34:00 [只看该作者]

附上文件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:条码.zip


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/2/27 9:26:00 [只看该作者]

定长条码表达式可以这样计算

IIF(Len([条码])=13,(((Convert(SUBSTRING([条码],2,1),System.Int16)+Convert(SUBSTRING([条码],4,1),System.Int16)+Convert(SUBSTRING([条码],6,1),System.Int16)+Convert(SUBSTRING([条码],8,1),System.Int16)+Convert(SUBSTRING([条码],10,1),System.Int16)+Convert(SUBSTRING([条码],12,1),System.Int16))*3+(Convert(SUBSTRING([条码],1,1),System.Int16)+Convert(SUBSTRING([条码],3,1),System.Int16)+Convert(SUBSTRING([条码],5,1),System.Int16)+Convert(SUBSTRING([条码],7,1),System.Int16)+Convert(SUBSTRING([条码],9,1),System.Int16)+Convert(SUBSTRING([条码],11,1),System.Int16)))%10-10)*-1,(-1))

代码计算参考:

 回到顶部
帅哥哟,离线,有人找我吗?
lidusan
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:1201 威望:0 精华:0 注册:2015/8/10 22:49:00
  发帖心情 Post By:2016/2/27 19:16:00 [只看该作者]

谢谢,完美解决.

 回到顶部