作业帮 > 综合 > 作业

在Excel 中如何把A列的四位数变成B列的五位数,如:5546变成14133、0228变成00208.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 19:57:54
在Excel 中如何把A列的四位数变成B列的五位数,如:5546变成14133、0228变成00208.
A列四位数的数据原本是B列的五位数的每相邻的两位数相加后所得,我想把它还原过来,如:
A B
5546 14133
0228 00208
A列数据很多,要用公式批量生成,
用VBA来解决吧!首先打开菜单【工具】【宏】【安全性】设置为:低!关闭这个Excel文件,再重新打开!
鼠标右键【Sheet1】的标签,点击【属性】,在打开的代码窗口,粘贴下面的代码:
Sub ouyangff()
Dim a(4) As Integer
On Error Resume Next
For i = 1 To [A65536].End(3).Row
For j = 1 To 4
a(j) = Mid(Cells(i,1),j,1)
Next
For j = 0 To 9
n1 = j
n2 = (10 + a(1) - n1) Mod 10
n3 = (10 + a(2) - n2) Mod 10
n4 = (10 + a(3) - n3) Mod 10
n5 = (10 + a(4) - n4) Mod 10
If (n2 + n3 + n4 + n5) Mod 10 = n1 Then Cells(i,2) = n1 & n2 & n3 & n4 & n5
Next
Next
End Sub
按Alt + F11,回到Excel里,再按Alt + F8 ,执行!
这时B列就是你要的结果了!
此题还有一个地方不可思议:怎么只有15分呢?
再问: 哈哈。。。就您厉害!!谢谢了,分少?我加好吧,帮个忙,有一列固定的五位数在A列,要分别减去(B1 C1 D1 E1 F1...)上的一个五位数,每位都不借位(但按借位计算)得五位正数,如:12540-56812=66738、00214-36698=74626....24617-25484=09233...数据多,要批量生成。
再答: A2、A3……是被减数,B1、C1、D1……是减数! 这个用公式吧! B2写公式: =RIGHT("0000"&SUM(RIGHT(MID($A2,{1,2,3,4,5},1)-MID(B$1,{1,2,3,4,5},1)+10)*10^{4,3,2,1,0}),5) 右拖、下拖!!!