乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>excel</em>表格中有<em>校验公式</em>,填入数值

<em>excel</em>表格中有<em>校验公式</em>,填入数值

作者:乔山办公网日期:

返回目录:excel表格制作


使用VBA自定义函数和下面公式:
在B1输入:
="4305242664"&text(takeout(A1,2,1),"00")
公式下拉

函数:TAKEOUT(自己以前用的,针对你的情况可以自己简化一下)
语法:TAKEOUT(被取字符串,取值类型,序号)
被取字符串:含有数字e799bee5baa6e79fa5e98193e78988e69d83363、汉字和字母的不规则字符串。
取值类型:(数字1、2)1代表汉字子串,2代表数字子串。
序号:(数字1到3)代表要取出子串在被取字符串从左到右的第几个。

Function takeout(str, zt, s)
On Error GoTo errtakeout1
Dim m As Integer
str = str & " "
If s = 1 Then
m = 0
Else
If s = 2 Then
m = -2
Else
If s = 3 Then
m = -4
Else
GoTo errtakeout1
End If
End If
End If
If zt = 1 Then
For i = 1 To Len(str)
If Asc(Mid(str, i, 1)) >= -20319 And Asc(Mid(str, i, 1)) <= -2050 Then
If m = -4 Then m = -3
If m = -2 Then m = -1
If m = 0 Then m = i
Else
If m = -3 Then m = -2
If m = -1 Then m = 0
If m > 0 Then
takeout = Mid(str, m, i - m)
Exit Function
End If
End If
Next
takeout = ""
Exit Function
Else
If zt = 2 Then
For i = 1 To Len(str)
If Asc(Mid(str, i)) > 47 And Asc(Mid(str, i)) < 58 Then
If m = -4 Then m = -3
If m = -2 Then m = -1
If m = 0 Then m = i
Else
If m = -3 Then m = -2
If m = -1 Then m = 0
If m > 0 Then
takeout = Mid(str, m, i - m)
Exit Function
End If
End If
Next
takeout = ""
Exit Function
Else
GoTo errtakeout1
End If
End If
errtakeout1:
takeout = "#NAME?"
End Function


你的条码都是15位数吧,如果是的话,就按这公式:
=ROUNDUP(SUMPRODUCT(--MID(A2,ROW(A1:A8)*2-1,1))*3+SUMPRODUCT(--MID(A2,ROW(A1:A7)*2,1)),-1)-SUMPRODUCT(--MID(A2,ROW(A1:A8)*2-1,1))*3-SUMPRODUCT(--MID(A2,ROW(A1:A7)*2,1))

你为什么要用四舍五入公式round,四舍五入后再计算,遇到一些小数的时候肯定会出错,直接去掉这个函数就行了。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网