У меня есть следующая таблица преобразования:

, и мне нужно преобразовать значения второго столбца в значения в первом столбце,как непрерывные переменные.
В настоящее время я пытаюсь написать функцию, которая принимает значение из второго столбца, проверяет его действительность и затем использует следующую формулу преобразования для преобразования данных:

Код в настоящее время выглядит следующим образом:
Public Function ReScale (input As Double)
'Max and Min values of the old scale.
Dim MinOld As Double: MinOld = 2
Dim MaxOld As Double: MaxOld = 6
'Test input value validity.
If input > MaxOld Or input < MinOld Then
ReScale = CVErr(xlErrNA)
End
Dim MinNew As Double
Dim MaxNew As Double
'Find in which interval the input value belongs.
If input >= 5.5 Then
MinOld = 5.5
MaxOld = 6.0
MinNew = 85
MaxNew = 100
ElseIf input >= 4.50 And input <= 5.49 Then
MinOld = 4.50
MaxOld = 5.49
MinNew = 65
MaxNew = 84
...` <--------------------- Question?
'Transform the old data to the new scale.
ReScale = ( (MaxNew - MinNew) / (MaxOld - MinOld) ) * (input - MaxOld) + MaxNew
End Function
Мой вопрос:
Должен ли я искать MaxNew
, MinNew
, MaxOld
и MinOld
в зависимости от значения переменной или я должен использовать абсолютный минимум и максимум?
Есть ли более простой способ сделать это?