excel - 尝试在 Excel 中增加 4 个字符的字母数字代码
问题描述
我正在尝试创建一个包含我的客户序列号之一的 CSV 文件。我们将它们打印为条形码供他们使用,通常我会使用我们的条形码软件来生成数字。但是,我们使用了不同的打印方法,它需要一个包含所有要打印数字的 CSV/Excel 文件。条码如下:
MC100VGVA。
最后一位是从字符串的其余部分创建的校验位。
现在,我的问题与“VGVA”位有关。A 列是前缀 (MC),B 列是数字 (100),C 列是递增的 4 个字符 (VGVA),D 列是校验位。
我需要 VGVA 位按字母数字递增。所以,当它到达 VGVZ 时,我需要它去 VGW0。然后当它到达VGZZ时,它需要去VH00等等,直到它们到达ZZZZ,其中下一位将B列增加到101,C列将变为0000。
我尝试使用 CHAR 公式,以及 CONCATENATE 和 MID。但是,因为我对这些公式并不精通,所以我尝试编辑它们以使用 4 位数字一直失败。
如果需要,我不反对使用 VBA,但这不是我曾经使用过的东西,所以你必须原谅我的任何无知。
如果您需要更多信息,请告诉我。谢谢!
解决方案
看起来您正在尝试创建一个新基,该基基于 27 位数字(0 以及从“A”到“Z”的所有字母)。所以我建议你创建一个从和到 27 位系统的转换。
让我首先解释一下我在八进制编号(8 位,从 0 到 7)中的意思:在那个系统中,我们从以下开始(只是一些示例):
a=0011
b=1237
c=1277
这些数字的含义是:
a equals 0*8^3 + 0*8^2 + 1*8^1 + 1*8^0 = 9, so:
a+1 equals 10, and converting this to octal numbering yields:
0012
b equals 1*8^3+2*8^2+3*8^1+7*8^0 = 671, so:
b+1 equals 672, and converting this to octal numbering yields:
1240
c equals 1*8^3 + 2*8^2 + 7*8^1 + 7*8^0 = 703, so:
c+1 equals 704, and converting this to octal numbering yields:
1300
我建议对您的 27 位系统执行完全相同的操作,例如:
VGZZ equals 22*27^3 + 7*27^2 + 26*27^1 + 26 = 438857
VGZZ+1 equals 438858, and converting this to 27-digit numbering yields:
VH00
您可以使用自己开发所需的 VBA 函数来执行此操作。从字符串到普通数字的转换是显而易见的,反之,您可以使用=MOD(...,27^3)
和其他类似的功能。
推荐阅读
- android - 我正在使用 youtube android player api 在我的应用程序中播放未列出的 youtube 视频,一次有多少用户可以访问它
- r - 滚动回归 4 年的每日数据,每个新回归和不同的因变量提前一个月
- c++ - 为什么我们要向 ostream obj 发送 ref 到 ostream 重载?
- java - 对象添加到父类arraylist如何访问扩展函数
- mysql - MySQL 列显示另一个表中列的总和
- java - 从另一个布局提交按钮
- javascript - 获取显示在邮递员和 chrome 中永久发送请求的请求
- php - 管理员将产品下载链接更改为自定义链接
- capacitor - 来自电容相机的 GPS EXIF 数据
- php - 如何在html文档正文中删除样式标签