我需要在Excel 2003中将百分比转换为评分系统,使用内置公式(首选)或在VBA中编写自定义函数。公式或函数必须接受一个参数,允许我指定最大分数。
例如,假设有一个名为Pct2Score(Pct As String, MaxScore As Integer)
的函数就是这样做的。
Pct2Score(“65%”,4)会返回 3 ,因为它会使用此分发:
0%-24.9% = 1
25-49.9% = 2
50-74.9% = 3
75-100% = 4
Pct2Score(“65%”,5)会返回 4 ,因为它会使用此分发:
0-19.9% = 1
20%-39.9% = 2
40-59.9% = 3
60-79.9% = 4
80-100% = 5
等等。我希望在Excel中有一个内置的分发公式可以完成这个,这样我就不必依赖VBA了。甚至可以使用公式组合来实现这一目标;唯一的限制是我需要将所有内容都包含在一个公式中。
答案 0 :(得分:1)
一个简单的公式(描述性而非Excel)只是:
1 + INT((Pct AS DOUBLE) * MaxScore / 100).
使用VBA:
Public Function Pct2Score(pct As String, MaxScore As Integer) As Integer
Dim pctD As Double
If (Right(pct, 1) = "%") Then pct = Left(pct, Len(pct) - 1)
pctD = CDbl(pct)
Pct2Score = 1 + Int(pctD * MaxScore / 100)
End Function
使用单一公式即可
=1+INT(A1*B1)
其中A1为Pct,B1为MaxScore。