例如:假设设备电话号码是847-630-4459
。
- 步骤 1:我们在数字前面添加一个“1”,得出:1-847-630-4459
- 第 2 步:对于前 7 位数字(1-847-630),我们从 10 中减去每个数字。例如 10-1 = 9、10-8 = 2,等等。
- 步骤 3:新标签创建为“序列号”。最终结果如下:
序列号 92634704459
我需要对 465 条电话线路执行此操作 - 有没有办法创建一个公式来自动执行此操作?
答案1
假设您的数字都有 10 位数字,那么使用 A1 中的数字,在 B1 中尝试此公式进行转换
="S/N 9"&SUMPRODUCT(MOD(-MID(SUBSTITUTE(A1,"-",""),{1,2,3,4,5,6},1),10),10^{5,4,3,2,1,0})&RIGHT(A1,4)
您可以将公式复制到列中以转换全套数字
答案2
这是一个更加数学导向的方法:
="S/N 9"&(1111110-INT(SUBSTITUTE(A1,"-","")/10000))*10000+MOD(SUBSTITUTE(A1,"-",""),10000)
不幸的是,它不能完全实现您的指令——当输入的电话号码包含0
(零)时,前一位数字会偏离一位。但它确实满足了您的隐含要求,即不同的电话号码应始终产生不同的序列号。
当然,您可以使用辅助列来缩短该公式。如果您设置B1
为包含=SUBSTITUTE(A1, "-", "")
,则序列号可以表示为
="S/N 9" & (1111110-INT(B1/10000))*10000 + MOD(B1, 10000)