На просторах интернета нашел как сделать интерполяцию внутри vba, чтобы и значения тоже были внутри. Вот ссылка на оригинал.
Сделал под себя и обнаружил, что дальше 3 значения расчет ведется неверный. Формула интерполяции верная. Проверил на бумаге и подсчитал при 1.3, получил -0.1761, написал ход расчета в функцию, получил -0.1684. Подскажите, где ошибка в трех соснах?
Вот мой код
Код
Function interpol_one()
Dim r, g, r2 As Single
r = Array(1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.2, 2.4, 2.6, 2.8, 3)
g = Array(-0.125, -0.139, -0.153, -0.174, -0.195, -0.219, -0.245, -0.274, -0.305, -0.339, -0.375, -0.455, -0.545, _
-0.645, -0.755, -0.875)
r2 = 1.31
interpol_one = LinearInterpolation(r2, r(i), g(i), r(i + 1), g(i + 1))
End Function
Function LinearInterpolation(ByVal x As Double, ByVal x1 As Double, ByVal fx1 As Double, _
ByVal x2 As Double, ByVal fx2 As Double) As Double
If (x2 - x1) <> 0 Then LinearInterpolation = fx1 + (fx2 - fx1) * (x - x1) / (x2 - x1)
End Function
Здравствуйте! Возникла непростая для меня задача, ответов на которую найти не смог. В excel делаю расчеты, где в 2 ячейки вбивается длина и ширина комнаты здания, а на выходе через десяток формул выдается ответ в виде массы данной комнаты.
Также сделано, что задавая стороны здания, excel выдает столбец с возможной шириной и возможной длиной комнаты, размеры которой получаются кратными сторонам здания. Например, здание 100×120м, стороне здания 100м будет комната со стороной 1, 2, 4, 5, 10, 20 и тд. аналогично для другой стороны. В итоге 2 столбца.
Нужно чтобы в те ячейки, куда я вбиваю длину и ширину комнаты здания, значения брались из этих двух столбцов, причем поочередно, а результат заносился в таблицу.
В итоге должно получиться, что задавая длину и ширину здания, мы получаем таблицу масс комнаты в зависимости от её размеров.