Добрый день!
Задача: есть два зависимых стобца данных X и Y, которые разделены на классы: столбец РАНГ. Необходимо найти значение Y по X в зависимости от РАНГа при помощи полиноминальной функции
Таблица имеет следующий вид (см. Пример):
1. Столбец РАНГ: целые значения как просто с цифрами так и цифры с буквенными индексами: 1; 2; 3а; 3б и тд
2. Столбец X: целые и десятичные числа
3. Столбец Y: числа от 0 до 1, а так же пустые ячейки и знаки "-" (когда значение не верное или является статошибкой)
4. Таблица данных должна остаться в исходном виде
Простенький VBA расчёта по полиноминальной функции я себе написал, но он не идеален:
1. Не работает в диапазонах значений
2. Не работает при наличии пустых ячеек или значений "-" в ячейках
3. Ну и самое главное он (как и я) не знает как расчитывать полиномы по рангам)
| Код |
|---|
Function ПОЛИНОМ_ЗНАЧ(WorkRange As Range, CondRange As Range, CondVAL As Double)
With Application
LinEstVAL = .LinEst(WorkRange, .Power(CondRange, Array(1, 2, 3, 4, 5, 6)))
a_1 = .Index(LinEstVAL, 1) * CondVAL ^ 6
a_2 = .Index(LinEstVAL, 1, 2) * CondVAL ^ 5
a_3 = .Index(LinEstVAL, 1, 3) * CondVAL ^ 4
a_4 = .Index(LinEstVAL, 1, 4) * CondVAL ^ 3
a_5 = .Index(LinEstVAL, 1, 5) * CondVAL ^ 2
a_6 = .Index(LinEstVAL, 1, 6) * CondVAL ^ 1
a_7 = .Index(LinEstVAL, 1, 7)
End With
ПОЛИНОМ_ЗНАЧ = a_1 + a_2 + a_3 + a_4 + a_5 + a_6 + a_7
End Function
|