如何在Excel中最好地将百分比转换为得分?

时间:2011-10-25 06:32:52

标签: excel vba

我需要在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了。甚至可以使用公式组合来实现这一目标;唯一的限制是我需要将所有内容都包含在一个公式中。

1 个答案:

答案 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。