Здравствуйте, уважаемые форумчане! Очень нужна помощь по вопросу с функцией ПРЕДСКАЗ в Excel. Требуется проинтерполировать нетабличные значения, но результат интерполяции неверен (для наглядности ввел табличное значение 700, но ПРЕДСКАЗ выдал совсем другое число, вместо 10344,6653, скрин приложил). Однако на втором скрине ПРЕДСКАЗ работает как нужно. В чем причина и можно ли выполнить требуемую задачу по другому? (Excel 2007)
bullet_bro написал: результат интерполяции неверен
откройте справку - ПРЕДСКАЗ считает параметры линейной регрессии и на основании этого дает новое значение, если вам нужно интерполировать по узлам - встроенной функции нет, есть стандартные формулы они реализуются просто, нелинейные варианты (Ньютон, сплайны) - нужно писать код
Соблюдение правил форума не освобождает от модераторского произвола
Всем привет! А как в файле ЛинИнтерпол.xlsx избавиться от таблицы A1:B15, интегрировав её в формулу E2?
Сделал вариант без интерполяции со вставленной в формулу таблицей, - работает. Сделал варианты с интерполяцией в [C19;C21], - тоже работают (функция LET из Office 365 для наглядности, можно и без неё).
А вот в [C20;C22] те же формулы [C19;C21] уже не работают, ТРАНСП и т.п. не помогает. Файл во вложении. В чём ошибка и как исправить?
С.М., при этом работает =LET(Xs;B3:B15;XYs;B3:C15; ПРЕДСКАЗ(B18; СМЕЩ(XYs;ПОИСКПОЗX(B18;Xs;-1;1)-1;1;2;1); СМЕЩ(Xs;ПОИСКПОЗX(B18;Xs;-1;1)-1;;2;1))) и =LET(Xs;B3:B15;Ys;C3:C15; ПРЕДСКАЗ(B18; ИНДЕКС(Ys;ПОИСКПОЗ(B18;Xs)): ИНДЕКС(Ys;ПОИСКПОЗ(B18;Xs)+1); ИНДЕКС(Xs;ПОИСКПОЗ(B18;Xs)): ИНДЕКС(Xs;ПОИСКПОЗ(B18;Xs)+1)))
С.М., при NewX=0 Y=#Н/Д, при NewX=2000 Y=#ДЕЛ/0!... Исправил - теперь при NewX=0 Y=5, при NewX=2000 Y=102,5, как и должно быть. Ввёл имена KnownX, KnownY, Start: для Office >=2007 в Диспетчере, для Office365 - в функции LET. Промежуточные файлы удалил. Спасибо огромное!
С.М., спасибо! Теперь можно получить значение Y даже для отрицательного X вместо #Н/Д в моём варианте. И да, без таблицы лучше - сразу понятно, что она не нужна. Но тогда уж и [B2:C5;D8] убрать. )) Таблицу я тоже оставлял лишь для демонстрации ТРАНСП(), тоже лишнее в контексте темы.
Но. У меня также была ступенчатая интерполяция на случай, когда при X=0-50 Y=5, при X=51-100 Y=10 и т.д. Была диаграмма для ступенчатой интерполяции, готовые формулы Office 365 для копипаста, кнопки для быстрой проверки диапазона. Добавил всё это в Ваш файл, который и прилагаю ниже.
По-моему, mush have для любого инженерного расчёта, зачастую обвешанного сканированными графиками. Теперь вместо подбора функции для графиков, формул интерполяции/экстраполяции и кучи доп. таблиц можно забить всего 1 формулу ("линейную" или "ступенчатую" в зависимости от ситуации).
Как минимум - сэкономит кучу времени и позволит разгрузить расчёты, сделав их более лаконичными. Как максимум, вообще достойно Копилки или PLEX. Ещё раз огромное спасибо.
Выполняю кусочную интерполяцию полиномами вплоть до 7-й степени. По личному убеждению - одно из самых красивых (ха) решений - кусочная интерполяция полиномом 3-й степени с расположением искомого значения в таком виде х1 х2 Хзаданное х3 х4. Для остальных сильна зависимость от положения Хзаданное в массиве выборки. По степени приближения к "точечная сглаженная" визуально приближен сплайн сплайн Катмулла-Рома. Естественно кроме хвостов графиков.
Всё сие в VBA. И даже где то тут уже выкладывал...