2
내가 VBA에서 다음과 같은 기능을 가지고 있습니다 :# VALUE! 명명 된 범위와 VBA 기능에 오류 VLOOKUP
Function weightedAverage(x0, y0, x1, y1, x)
weightedAverage = y0 + (x - x0) * (y1 - y0)/(x1 - x0)
End Function
Function interpolateLookup(lookupVal As Range, lookupRange As Range, colID As Integer) As Double
step = 0.01
x0 = Application.Round(lookupVal.Value, 3)
y0 = Application.VLookup(x0, lookupRange, colID, True)
x1 = Application.Round(lookupVal.Value, 3) + step
y1 = Application.VLookup(x1, lookupRange, colID, False)
x = lookupVal.Value
interpolateLookup = weightedAverage(x0, y0, x1, y1, x)
End Function
여기서 문제는 내 interpolateLookup 함수는 # VALUE를 반환한다는 것입니다! 다음 입력을 전달하면 오류가 발생합니다.
=interpolateLookup(E5,K3:O803,5)
왜?
코드를 살펴 보셨습니까? 나의 첫 번째 생각은'y0' 또는'y1' 중 하나가 에러 값을 반환하는 것입니다. – Rory
옙 ... 알겠습니다. y1이 값 오류를 반환하고 있습니다 ... –
당신은 ** 정확한 ** 일치를 찾으려고 했습니까? – Rory