在平时工作生活中,经常需要按照一定的标准对应的数据求和。如在公司的考勤系统中。不同的类别对于不同的考勤分值。
如下图所示:
我们需要依据表一的标准,把表二相应文字对照换算为数值并求和。如下图
一般我们都会用VLOOKUP函数和sum函数结合使用取值和求和。
这里我们介绍一下VBA的方法
详细源码:
Sub 替换求和()
Dim A, D, E As Integer, F(1 To 7) As Single, H As Byte
With Sheets("表一")
A = .Range("A1").CurrentRegion
End With
With Sheets("表二")
D = .Range("A1").CurrentRegion
For E = 2 To UBound(D)
For H = 2 To 8
If D(E, H) <> "" Then
If Not IsError(Application.VLookup(D(E, H), A, 1, 0)) Then
F(H - 1) = Application.VLookup(D(E, H), A, 2, 0)
End If
End If
Next
D(E, 9) = Application.sum(F): Erase F
Next
.Range("A1").Resize(UBound(D), UBound(D, 2)) = D
End With
End Sub