上一篇讲解了,因为它有他的局限性,所以现在来给你介绍另一种方法:
利用VBA解决阶梯提成的方法
Sub CalculateCommission()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
' 设置要操作的工作表
Set ws = ThisWorkbook.Worksheets("表1") '将"Sheet1"替换为实际的工作表名称
' 获取最后一行的行号
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
' 循环遍历每一行业绩数据
For i = 3 To lastRow
' 获取业绩数据
Dim sales As Variant ' 更改数据类型为 Variant
sales = ws.Cells(i, "B").Value
' 使用VLOOKUP函数在提成比例区域内查找并获取提成比例
Dim commission As Variant
commission = Application.VLookup(sales, ws.Range("f3:g8"), 2, True)
' 将提成比例写入对应的单元格(C列)
If Not IsError(commission) Then
ws.Cells(i, "C").Value = commission
End If
Next i
End Sub
这段代码可以根据每行的业绩数据,在提成比例区域中查找对应的提成比例,并将结果写入相应的单元格中(C列)。请根据实际需求和数据进行适当的调整和修改。
1、设置工作表:使用Set ws = ThisWorkbook.Worksheets("表1")将要操作的工作表指定为"表1"。你可以根据实际情况将工作表名称更改为你的表格名称。
2、获取最后一行的行号:使用lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row获取B列中最后一行的行号。
3、循环遍历每一行业绩数据:通过For i = 3 To lastRow进行循环,从第3行开始遍历到最后一行。
4、获取业绩数据:使用sales = ws.Cells(i, "B").Value获取当前行B列的业绩数据。
5、使用VLOOKUP函数进行查找:使用commission = Application.VLookup(sales, ws.Range("f3:g8"), 2, True)在提成比例区域内(f3:g8)进行近似查找,并将结果赋给commission变量。
6、将提成比例写入单元格:通过ws.Cells(i, "C").Value = commission将提成比例写入当前行的C列单元格。
7、错误处理:使用If Not IsError(commission)判断是否发生了错误,如果没有发生错误,则执行写入操作。
请添加“关注”和“收藏”,方便后续查阅。