4

У меня есть таблицы данных, как в этом примере, девять записей в A1:B9 в этом случае:

A    B
--   ---
1    2.9
2    5.06
3    7
4    8.84
5    10.87
6    13.24
7    16.22
8    20.25
9    36.7

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

Я хочу создать вторую таблицу, столбцы E и F, с количеством строк, которое является "следующим целым числом" для самого высокого значения в столбце B. В этом случае B9 = 36,7, поэтому у него будет 37 строк. Столбец F1:F37 будет содержать целые числа от 1 до 37, столбец E должен иметь числовые значения, соответствующие F, в том же отношении, что и между столбцами A - B. Другими словами, интерполируют значения столбца E, соответствующие значениям столбца F.

Например, A3 = 3 и B3 = 7. В этом случае F7 = 7 и E7 = 3, поскольку B уже содержит целое число 7 и имеет совпадающее значение в столбце A. Однако F8 = 8, что является промежуточным значением, не содержащимся в столбце B. Таким образом, E8 будет лежать между 3 и 4, основываясь на исходных данных, и должен быть интерполирован.

Идея заключается в том, что при построении графика A1:B9 будет иметь ту же форму, что и E1:F37. В этом примере я расширю таблицу данных до 37 целочисленных результатов, которые были бы получены в ходе исходных измерений, и посмотрю, в какое время (в столбце E, с десятичными знаками) эти значения произошли бы.

Что я пробовал

Пытаясь решить это самостоятельно, я смог найти формулу, отнимающую много времени (обратите внимание, что в моей попытке мои столбцы E и F меняются по сравнению с тем, что я описал выше).

  1. Я создал столбец (K), содержащий разницу между элементами столбца B. К5 = В5-В4. Это смещение Y для каждого приращения X.
  2. Столбец E будет содержать столько последовательных целых чисел (37), начиная с 1, как следующее целочисленное значение самого большого элемента в B. В этом случае B9 содержит 36,7, поэтому 37.
  3. На F1:F37 я ввожу следующую формулу.

Ячейка F1 содержит:

=IF(E1>$B$9,$A$9+(E1-$B$9)/$K$9,IF(E1>$B$8,$A$8+(E1-$B$8)
    /$K$9,IF(E1>$B$7,$A$7+(‌​E1-$B$7)/$K$8,IF(E1>$B$6,$A$6+(E1-$B$6)
    /$K$7,IF(E1>$B$5,$A$5+(E1-$B$5)/$K$6,IF(E1‌​>$B$4,$A$4+
    (E1-$B$4)/$K$5,IF(E1>$B$3,$A$3+(E1-$B$3)/$K$4,IF(E1>$B$2,$A$2+
    (E1-$B$2‌​)/$K$3,IF(E1>$B$1,$A$1+(E1-$B$1)/$K$2,E1/$K$1)))))))))  

Это работает довольно хорошо. Но это не автоматизированная формула; необходимо ввести столько "IF", сколько элементов в столбцах A+B (X+Y). Я протестировал точечные диаграммы с линиями от A1:B9 и E1:F37 (в обратном порядке для правильной последовательности X/Y), и они сгенерировали точно такую же форму кривой, так что это работает.

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

2 ответа2

7

Короткий ответ

Интерполяция основана на уравнении, которое связывает значения X и Y. Если вы знаете фактическое уравнение, вы можете напрямую рассчитать любые промежуточные значения, которые вы хотите. Если вы этого не сделаете, вы будете интерполировать, используя приближение. Качество аппроксимации определяет, насколько точными будут ваши промежуточные значения. Линейная интерполяция будет грубой, если вы приближаетесь к кривой с ограниченным количеством точек. Есть несколько других подходов, которые дадут вам лучшие результаты, и встроенные инструменты анализа, которые сделают большую часть работы.

Длинный ответ

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

Уравнение

Независимо от того, как вы это делаете, интерполяция выполняется с использованием уравнения, которое определяет отношения между X и Y. Уравнение будет либо фактическим, либо оценочным. Если это оценка, существует ряд различных подходов, которые зависят от характера данных и того, что вам нужно сделать.

В другом вопросе вы использовали данные, основанные на уравнении Y=2^X Когда у вас есть фактическое уравнение, вы можете точно интерполировать. Выберите новое значение для X или Y и уравнение даст вам другое значение. Если вы не знаете фактическое уравнение, вам нужно найти такое, которое приближается к нему. Я буду использовать этот ответ, чтобы сосредоточиться на подходах интерполяции. Обычно они используют встроенные инструменты анализа, которые выполняют большую часть работы. Если вам нужно больше подробностей о механике использования определенного инструмента или более автоматизированного подхода, мы можем расширить это в другом ответе.

Попробуйте найти фактическое уравнение

Лучшее решение - посмотреть, сможете ли вы определить, что является настоящим уравнением. Если вы знаете процесс, который сгенерировал данные, это может сказать вам природу уравнения. Многие процессы, когда в контролируемых условиях, когда вы имеете дело с единственной движущей переменной и отсутствием случайного шума, следуют простой кривой, для которой известен тип уравнения. Итак, первый шаг - посмотреть на форму данных и посмотреть, похожа ли она на одну из них.

Самый простой способ сделать это - построить график данных и добавить линию тренда. В Excel есть ряд общих кривых, которые можно попробовать подогнать.

трендовое меню

Давайте попробуем это с данными 2^N из вашего другого вопроса. Если вы не определили шаблон чисел и попробовали подход линии тренда, вы увидите значки кривых различной формы. Экспоненциальная кривая имеет ту же общую форму, и это даст вам следующее:

2 ^ N

В качестве основы Excel использует e а не 2 , что является просто переводом (e 0.693 - 2). Визуально вы можете видеть, что линия тренда точно следует данным. R 2 также говорит вам об этом. R 2 - это статистическая мера того, сколько различий в данных вы учитываете с помощью вашего уравнения. Значение 1 означает, что уравнение учитывает 100% отклонения или идеальное соответствие.

Пример в этом вопросе также имеет вид экспоненциальной формы. Если вы попробуете тот же подход, вы получите такой результат:

опыт подходит

Таким образом, эти данные не являются экспоненциальными. Мы можем попробовать полином, который описывает некоторые естественные процессы и способен имитировать различные кривые (я расскажу об этом позже):

поли 3

В качестве приблизительной оценки процесса, лежащего в основе данных, он не очень подходит. В третьем порядке (уравнение, содержащее степени от X до X ^ 3), оно имеет больше точек перегиба, чем данные, и все еще не совпадает. Таким образом, основное уравнение не похоже на простую общую кривую, что означает, что уравнение нужно будет аппроксимировать.

Линейная интерполяция

Это подход, который вы описываете в ваших комментариях. Это просто, используя простую формулу, и довольно легко автоматизировать. Это может быть достаточно, если у вас много точек, и прямые линии между ними достаточно близки. На многих кривых короткие сегменты некоторых областей будут близки к прямым линиям. Однако это плохое приближение для изогнутой линии, и ваши результаты будут неточными в областях с какой-либо значительной кривизной. В вашем примере область между значениями X от 7 до 8 будет иметь большую кривизну. В этой области прямая линия по сравнению с реальной кривой будет выглядеть так:

прямая против кривой

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

регрессия

Люди предложили регресс в качестве подхода, здесь и в других постах. Это может быть сделано с использованием линий тренда или их базовых функций рабочего листа, или инструментов анализа (я думаю, что это может быть в наборе инструментов анализа, для которого может потребоваться загрузка этой опции в Excel, она может не загружаться по умолчанию).

Регрессия пытается подогнать кривую к вашим данным с целью минимизации общей ошибки между данными и кривой. При обычном использовании он не является подходящим инструментом для этой задачи (это метод, используемый для подгонки линий тренда, и вы увидели, как это сравнивается с тем, что вам нужно).

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

  • Регрессия пытается подогнать одно уравнение ко всем данным. Это не будет эффективным, если процесс, который создал данные, не описывается типами уравнений, которые можно попробовать. При большом количестве точек данных линейная интерполяция каждого сегмента может быть лучшим приближением, чем кривая регрессии для всех данных.

Однако, вместо того, чтобы использовать его обычным способом, регрессия может быть "злоупотреблена" как обходной путь для того, что вы хотите, и это обычно будет работать. Когда вы пытаетесь смоделировать процесс, обычно оценивается простейшая формула (бритва Оккама). С другой стороны, с достаточно сложным уравнением, вы можете поместить что угодно. Вы всегда можете нарисовать каракули, которые пройдут через каждую точку. С N точками вы можете найти полиномиальное уравнение порядка N-1 , которое пройдет через все точки (наихудший сценарий).

Я говорю "обычно", потому что в некоторых случаях это довольно замученная линия, которая будет бесполезна для вашей цели. И обратите внимание, что этот подход на самом деле ничего не "моделирует" в том смысле, что полученное уравнение будет предсказывать поведение за пределами диапазона данных.

Вот анализ ваших данных с использованием полиномиальной регрессии с последовательными уравнениями более высокого порядка (первый скриншот включает в себя порядки 3 - 5):

поли 3-5

(Нажмите на изображение для удобочитаемого размера.) Обратите внимание, что инструмент анализа включает в себя тот тип интерполяции, который вы хотите выполнить; это породило промежуточные значения. Для каждого анализа значения a(n) являются коэффициентами найденного уравнения. a(0) - константа, a(1) - коэффициент для члена X ^ 1 и т. д. Показывает значение R 2 для подгонки. Это должно быть фактически 1 чтобы быть достаточно близко для вашей цели.

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

Поли 3-5 диаграммы

Когда мы добираемся до полинома 6-го и 7-го порядка, это выглядит так:

поли 6-7

поли 6-7 диаграммы

Если бы мы пошли к полиному 8-го порядка для ваших 9 значений, это было бы идеально, но 7-й порядок, вероятно, достаточно близок. Для перспективы, обратите внимание, что уравнение 7-го порядка имеет R 2 0,9999 и все еще не идеально.

Использование инструмента регрессионного анализа для нахождения адекватного соответствия (в данном случае уравнения 7-го или 8-го порядка) даст промежуточные значения, которые вы хотите. Но это хорошая идея, чтобы наметить результат и взглянуть на кривую, чтобы убедиться, что это не каракули.

Сплайны

Если вы наметили свои данные и выбрали опцию для плавных линий, то, что Excel использует для создания сплайнов. Фактически, почти каждое приложение компьютерной графики (включая определения шрифтов) основано на сплайнах для плавных кривых и переходов кривых. Он назван в честь гибкого правила, которое когда-то рисовальщики использовали для соединения произвольных точек с кривой.

Сплайны создают кривую для каждого сечения, сечения за раз, учитывая соседние точки. Кривая проходит через каждую точку, и нет резких изменений по обе стороны от точки, например, при соединении точек с прямыми линиями.

Уравнения, используемые для сплайнов, не пытаются моделировать процесс, который произвел данные; это строго выглядеть красиво. Тем не менее, большинство процессов следуют некоторой непрерывной, гладкой кривой. Когда вы работаете с одним сегментом кривой, многие различные уравнения, которые дают кривые в целом одинаковой формы, будут давать очень похожие значения внутри сегмента. Поэтому в большинстве случаев сплайны дают хорошее приближение к тому, что вы хотите (и, естественно, они проходят через каждую точку, в отличие от регрессии, которая должна проходить через каждую точку).

Я снова говорю "большинство случаев". Сплайны отлично работают с данными, которые довольно однородны и регулярны, и следуют "правилам" для кривой. Это может сделать некоторые неожиданные вещи с необычными данными. Например, предыдущий вопрос SU был об этом странном отрицательном "падении" в диаграмме Excel, созданной из данных:

падение

Сплайны немного похожи на желе. Вообразите большой кусок Jello, и вы ограничиваете определенные места, где вы хотите их. Остальная часть Jello будет выпячиваться в местах, где это необходимо. Уравнение может определять определенные виды кривых. Если вы проведете кривую через определенные точки, произойдет то же самое. В случае сплайнов эффект ограничен странным выпуклым или неестественно выглядящим сегментом кривой; уравнения регрессии высокого порядка могут следовать по дикому пути.

Вот как сплайны представляют кривую ваших данных:

сплайн

сплайн-диаграмма

Если вы сравните это с регрессионными кривыми высокого порядка, сплайны будут более "реагировать" на локальные изменения.

Я сделал этот анализ, используя LibreOffice Calc, в котором есть надстройка для анализа, включающая сплайны. Как видите, это также приводит к сплайнам, интерполированным результатам, которые вы ищете. У меня нет готового доступа к аналитическому инструментарию Excel, поэтому я не знаю, содержит ли Excel сплайны. Если нет, LO Calc будет работать в Windows, и это бесплатно.

Нижняя линия

Это охватывает подходы, которые вы можете использовать для интерполяции промежуточных значений. Может быть так, что разные подходы лучше работают с разными данными. Или ваши требования могут быть приблизительными, быстрыми и простыми. Решите, какая интерполяция вам нужна. Если вам нужно больше подробностей о том, как это сделать, мы можем обратиться к механике в другом ответе.

3

Прочитав ваши комментарии и исправления к вопросу, есть пара вещей, которые вы хотите сделать, но которые не отражены в моем предыдущем ответе. Этот ответ будет касаться этих вопросов, и я включил пошаговое руководство по выполнению всего процесса интерполяции.

Неточные данные

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

Однако данные, которые вы показываете, не совсем соответствуют виду кривой, которую вы обычно видите для физического процесса. Теоретические кривые, как правило, гладкие, когда есть только одна переменная движения и нет шума. Если вы используете очень точное оборудование как для запуска считывания с заданным интервалом, так и для обеспечения точного измерения, вы можете принять результаты как точные. Однако, если вы вручную синхронизируете показания и вручную снимаете показания, значения X могут быть неточными, даже если сами показания являются точными. Сдвиг отдельных значений X немного тем или иным образом привнесет виды небольших неровностей, которые вы видите на кривой ваших данных (если только пример не является просто числами, которые вы составили для целей примера).

Если это так, вы можете воспользоваться регрессией для оценки наилучшего соответствия.

Используя Y как X

В вашей задаче вы хотите определить значения для Y (целочисленные значения от 1 до 37 в этом примере) и найти соответствующие значения X. Это было достаточно легко сделать в вашей задаче Y=2^X потому что это простое уравнение можно легко преобразовать в X=log(Y)/log(2) , и вы можете напрямую рассчитать любое значение, которое хотите. Если уравнение не является чем-то простым, часто не существует практического способа его инвертировать. Подход "злоупотребления" регрессии в моем предыдущем ответе дает вам уравнение высокого порядка, но это "однонаправленное", часто непрактичное решение для обратного уравнения.

Самый простой подход - просто поменять местами X и Y с самого начала. Это дает вам уравнение, которое вы можете использовать с целочисленными значениями, которые вы вводите (анализ дает вам коэффициенты уравнения, как описано в предыдущем ответе).

Никогда не больно видеть, сработает ли простая кривая. Вот обратные данные, и вы можете видеть, что это бесполезно:

журнал

Итак, попробуйте полиномиальную посадку. Тем не менее, это тот случай, который я описал в предыдущем ответе. Значения от 1 до 8 подходят хорошо, но 9 дает расстройство желудка. Полином 3-го порядка дает вам удар:

poly3

Он становится все более "интересным" с увеличением порядка уравнения. К 7-му заказу вы получите это:

poly7

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

шлицы

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

Экстраполяция против интерполяции

В этом примере ваше первое значение Y составляет 2,9. Вы хотите получить значения для 1 и 2 , которые находятся за пределами диапазона данных. Это требует экстраполяции, а не интерполяции, что является совсем другим требованием.

  • Если уравнение известно, как ваш пример Y=2^X , вы можете вычислить любое значение, которое вы хотите.

  • Если известно, что процесс, генерирующий данные, следует простой кривой, и вы уверены в соответствии, вы можете спроецировать значения за пределы диапазона данных и даже получить значимый доверительный интервал для диапазона, которым эти значения могут быть (на основе сколько различий между данными и кривой внутри диапазона данных).

  • Если вы принудительно подгоняете уравнение высокого порядка к данным, проекции за пределами диапазона данных обычно не имеют смысла.

  • Если вы используете сплайны, для проецирования за пределы диапазона данных нет никаких оснований.

Какие бы прогнозы вы ни делали за пределами диапазона ваших данных, они настолько же хороши, насколько и уравнение, которое вы используете, и если вы не используете точное уравнение, чем дальше вы получаете от своих данных, тем более неточными они будут.

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

Для полиномиальных уравнений коэффициент нулевой мощности является константой, и это значение, которое будет получено для значения X равного 0 . Так что это простой способ посмотреть, куда пойдет кривая в этом направлении.

нулевые значения

Обратите внимание, что к 4-му или 5-му порядку точки с 1 по 8 довольно точны. Но как только вы выходите за пределы диапазона, уравнения могут вести себя совсем по-другому.

Экстраполяция с использованием ограниченных данных

Один из способов улучшения состоит в том, чтобы подогнать только точки на этом конце и включить столько последовательных точек, сколько следует форме кривой на этом конце. Точка 9 явно отсутствует. До этого на кривой было несколько перегибов, один из которых находится вокруг точки 5 или 6, поэтому точки выше, чем это, следуют другой кривой. Используя только точки с 1 по 5, вы приближаетесь к полному многочлену 3-го порядка. Это уравнение будет проецировать нулевую точку 0,12095 (сравните с таблицей выше), а для значения X 1 0.3493 .

Что произойдет, если вы просто подгоните прямую линию к первым пяти точкам:

Прямо

Это проецирует нулевую точку -0,5138, а для X 1 -0.0071 .

Этот диапазон возможных результатов указывает на уровень неопределенности за пределами диапазона ваших данных. Там нет правильного ответа. И это было в конце концов. Значение Y для X 9 составляет 36.7 . Вы хотите перейти на 37. Сплайны предполагают, что кривая асимптотическая в 9 . Проецирование прямой линии в исходных данных приведет к значению чуть больше 9 (то же самое с полиномом 4-го порядка). Полином 3-го порядка предлагает значение меньше 9 (как и 5-й и 6-й порядки). Полином 7-го порядка предполагает значение, значительно превышающее 9 . Таким образом, все, что находится за пределами диапазона данных - это предположение, или все, что вы хотите.

Собираем все вместе

Итак, давайте рассмотрим, как будет выглядеть реальное решение. Предположим, вы уже пытались найти точное уравнение и протестировали общие кривые, используя линию тренда. Следующим шагом будет попытка регрессии, потому что это дает вам формулу для кривой, и вы можете вставить свои целочисленные значения.

У меня нет готового доступа к Excel 2013 или инструментам анализа. Я буду использовать LibreOffice Calc, чтобы проиллюстрировать это. Он не идентичен, но достаточно близок, чтобы вы могли следить за ним в Excel. В LO Calc это фактически бесплатное расширение, которое необходимо загрузить. Я использую CorelPolyGUI, который можно скачать здесь. Мое воспоминание об инструменте анализа состоит в том, что в нем не было сплайнов. Если это все еще так, и вы хотите сделать это в Excel, я наткнулся на эту бесплатную надстройку (которую я не тестировал). Альтернативой может быть использование LO Calc, который будет работать в Windows и является бесплатным.

шаг 1

Здесь я ввел значения X и Y (в обратном порядке) в столбцах A и B и открыл диалоговое окно анализа. Выделение значений X и нажатие кнопки X загружает диапазоны данных, и я выбрал полином.

шаг 2

На следующей вкладке я указываю, что хочу использовать от 0 до 7 градусов (полином 7-го порядка со всеми ордерами).

шаг 3

Чтобы указать выходные данные, я выбираю C1 и нажимаю «Столбцы», и он регистрирует столбцы, необходимые для вывода. Я выбираю, что я хочу, чтобы он выводил исходные данные, вычисленные результаты, и я решил добавить три промежуточные точки между каждой исходной точкой данных. И я говорю, что хочу график результатов на новом графике. Затем перейдите в меню расчета и нажмите кнопку рассчитать.

шаг 4

И вот оно. Если вы посмотрите на рассчитанные значения, вы можете заметить проблему. Это станет очевидным на следующем этапе.

шаг 5

Здесь я добавил значения от 1 до 37 . На данный момент мы хотим иметь дело только с интерполяцией, поэтому я добавил формулу для вычисления только значений от 3 до 36 . Формула просто расширяет коэффициенты, перечисленные в результатах (значения a (n)). Формула в I2:

=D$4+D$5*H3+D$6*H3^2+D$7*H3^3+D$8*H3^4+D$9*H3^5+D$10*H3^6+D$11*H3^7

Это просто каждый коэффициент, умноженный на соответствующую мощность значения X. Перетащите это вниз, и вы получите свои результаты. Ну, не совсем; Вы должны посмотреть на это, чтобы видеть, проходит ли это тест здравомыслия. Мы знали, что существует проблема между 8 и 9 , но это оказывается половина желаемых значений. Мы можем использовать значения от 3 до 20 , но нет смысла объединять столько значений из другого метода. Так что давайте просто использовать сплайны для всего этого.

шаг 6

Снова откройте диалоговое окно анализа и измените метод на "сплайны" на вкладке ввода (здесь не показано). Дайте ему новый выходной диапазон и попросите его рассчитать. Это все, что нужно.

шаг 7

У нас есть новые результаты для работы. Разделение диапазона данных на это множество сегментов делает каждый сегмент коротким, поэтому линейная интерполяция должна быть довольно хорошей (намного лучше, чем использовать ее для исходных данных).

шаг 8

Процесс подбора кривой или интерполяции включает создание точек данных; используя ваше собственное суждение о том, как кривая "должна" (или не должна) выглядеть, (регрессия предполагает, что даже исходные данные являются неточными).

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

Я добавил столбец с вашими номерами от 1 до 37 . Из предыдущего обсуждения у нас нет надежной основы для проецирования значений для 1 и 2 , поэтому я оставил их пустыми. Для 37 я пошел с асимптотическим предположением и сделал это 9 . Значения от 3 до 36 находятся с помощью линейной интерполяции (и это формула, которую вы можете адаптировать к другим данным). Формула в Q3:

=TREND(OFFSET($M$1,MATCH(P3,M$1:M$33)-1,2,2),OFFSET($M$1,MATCH(P3,M$1:M$33)-1,0,2),P3)

Функция TREND просто интерполирует, когда диапазон составляет две точки. Синтаксис:

TREND(Y_range, X_range, X_value)  

Функция OFFSET используется для каждого диапазона. В каждом случае он использует функцию MATCH, чтобы найти первую строку диапазона, содержащую целевое значение. Значения -1 объясняются тем, что это смещения, а не местоположения; совпадение в первой строке является смещением 0 от контрольной строки. И обратите внимание, что в этом случае столбец Y смещен на 2 , потому что я добавил дополнительный столбец для ручной корректировки значения. Параметры OFFSET выбирают столбец, содержащий значения Y или X, и выбирают высоту диапазона 2, которая дает вам значения ниже и выше цели.

Результат:

результат

Мастер анализа выполняет тяжелую работу, и независимо от того, используете ли вы полиномиальную регрессию или сплайны, для генерации результата требуется всего одна формула.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .