图一是规则,图二是最终呈现的表格。
例如: 陆涛涛与MK的排名相差-17,获得星星2,满足图一获得7个积分,就是说,如何通过函数,在图二的G5单元格自动输出7这个数值?
大神们,求解答!
本人做的不知道是否合要求,当输入敌方排名及获得星星后,本程序自动计算出“排名相差”及“积分”两栏数据。
规则放在I至M列,如图
按ALT+F11打开VBS宏,在左边双击Sheet1,如图
在右边的代码粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 Then '输入获得的星星数后
Range("F" & Target.Row).Value = Range("A" & Target.Row).Value - Range("D" & Target.Row).Value '自动计算“排名相差”
'下面代码为计算积分
If Range("F" & Target.Row).Value <= -11 Then '排名相差<-11
Call 计算星星数(2, Target.Row)
Exit Sub
End If
If Range("F" & Target.Row).Value < -5 Then '(-10)~(-6)
Call 计算星星数(3, Target.Row)
Exit Sub
End If
If Range("F" & Target.Row).Value < 0 Then '(-5)~(-1)
Call 计算星星数(4, Target.Row)
Exit Sub
End If
If Range("F" & Target.Row).Value >= 21 Then '>=21
Call 计算星星数(9, Target.Row)
Exit Sub
End If
If Range("F" & Target.Row).Value > 15 Then '>16-20
Call 计算星星数(8, Target.Row)
Exit Sub
End If
If Range("F" & Target.Row).Value > 10 Then '11-15
Call 计算星星数(7, Target.Row)
Exit Sub
End If
If Range("F" & Target.Row).Value > 5 Then '6-10
Call 计算星星数(6, Target.Row)
Exit Sub
End If
If Range("F" & Target.Row).Value >= 0 Then '0-5
Call 计算星星数(5, Target.Row)
Exit Sub
End If
End If
End Sub
Function 计算星星数(intRow, MyRow) '说明:根据星星的数量,获得相应的积分
Select Case Range("E" & MyRow).Value
Case 0
Range("G" & MyRow).Value = Range("M" & intRow).Value
Case 1
Range("G" & MyRow).Value = Range("L" & intRow).Value
Case 2
Range("G" & MyRow).Value = Range("K" & intRow).Value
Case 3
Range("G" & MyRow).Value = Range("J" & intRow).Value
End Select
End Function
最后附上原文件,输入获得星星数后,回车,程序会自动计算出“排名相差”及“积分”
没看懂怎么操作,不过还是谢过,感觉不是一两个函数公式能解决的。
追答肯定不能用一两个函数可以解决,就算是IF语句也只能七层嵌套,不能解决。用宏最好了。看不懂没关系,我已经给你做好了,你直接下载拿去用就行了。