【发布时间】:2019-10-14 14:08:12
【问题描述】:
我的数据是这样的
f g h i points new points old
name runs balls 4's 6's
xxy 40 60 2 4 50 26
aabc 25 45 2 0 25 13.5
lmn 102 80 10 4 138 70
我需要根据以下标准计算玩家得分的总分
玩家每跑一次得 1 分,而他获得 0.5 分
玩家每击出一个 6 就得 2 分,而他之前获得 1 分
玩家之前每击出 4 个 4 就得 1 分,而他获得 0.5 分
玩家得分50分8分,之前是4分
玩家得分 16 得分 100 之前是 8 分
开始 11 获得 2 分
-
玩家因低罢工而获得负分,如下所示
罢工率低于50%负点-6早-3
50 到 60 负点之间的罢工率 -4 早 -2
打击率在 60 到 70 负点之间 -2 早 -1
出鸭(零)负点-2(无变化)
我有很长的 excel 公式,如果评分系统发生任何变化,这很难改变。这就是我建议将各种标准放在一张表中并将玩家数据与结果一起放在另一张表中以计算玩家得分的方式。
这就是我建议将各种标准放在一张表中,将玩家数据放在另一张表中来计算玩家得分的方式。
我尝试创建函数来计算玩家得分。但是我无法正确结束它。此外,我想将标准放在另一张表中并计算点,我如何为此创建函数。我从这样的事情开始:
Function tscore(tscore) As Integer
strikerate = 0
economyrate = 0
halfcentry = 0
century = 0
ducks = 0
wickets = 0
runs = 0
SIXERS = 0
BOUNDERY = 0
starteleven=2
If Range("f2") > 0 Then
runs = Range("F2") * 1
End If
If Range("H2") > 0 Then
BOUNDERY = Range("H2") * 1
End If
If Range("H2") > 0 Then
SIXERS = Range("I2") * 2
End If
If Range("F2") / Range("G2") < 50 Then
strikerate = -3
Else
If Range("F2") / Range("G2") >= 50 And Range("F2") / Range("G2") <= 59.9 Then
strikerate = -2
Else
If Range("F2") / Range("G2") >= 60 And Range("F2") / Range("G2") <= 70 Then
strikerate = -1
endIf
endif
endif
endif
tscore=runs+ BOUNDERY+ SIXERS+strikerate+starteleven
end function
实际结果应该是
name points new points old
xxy 50 26
aabc 25 13.5
lmn 138 70
但我无法完成 vba 功能。
【问题讨论】:
-
您需要澄清您需要帮助的内容。我们无法猜测您的问题是什么,也没有人会为您实施。