Нужно: У нас "альфа" будет постоянно меняться. Он может быть в пределах данной таблицы или выходить за грани. Я хочу что бы "кси"в желтом квадратике менялось менялось тогда когда у меня изменяется "альфа".
Нужно: У нас "альфа" будет постоянно меняться. Он может быть в пределах данной таблицы или выходить за грани. Я хочу что бы "кси"в желтом квадратике менялось менялось тогда когда у меня изменяется "альфа".ronik710
Конкретезирую. Нужно что бы при изменении "альфа" менялось "кси". "кси" же в свою очередь берется из таблицы. Отсюда получается что при "альфа"=0,045 искомое "кси" находится между ("альфа1"=0,039 "кси1"=0,98, "альфа2"=0,049 "кси2"=0,975) и исходя из интерполяции получается что искомое "кси"=0,977.
Можно ли это автоматизировать как нибудь?
Конкретезирую. Нужно что бы при изменении "альфа" менялось "кси". "кси" же в свою очередь берется из таблицы. Отсюда получается что при "альфа"=0,045 искомое "кси" находится между ("альфа1"=0,039 "кси1"=0,98, "альфа2"=0,049 "кси2"=0,975) и исходя из интерполяции получается что искомое "кси"=0,977.
Получилась вот такая UDF Interp. На листе в яч. F5 забита формула =Interp(F2;B2:B75;A2:A75), где F2 - текущее значение альфа, B2:B75 - диапазон значений альфа, A2:A75 - диапазон значений кси (диапазоны д.б. одинаковыми). [vba]
Код
Function Interp(a As Range, Arng As Range, Krng As Range) As Single Dim al, ks, i As Integer al = Arng.Value: ks = Krng.Value Do i = i + 1 Loop While al(i, 1) < a.Value If i = 1 Then Exit Function If al(i, 1) = a.Value Then Interp = ks(i, 1) Else Interp = (ks(i, 1) - ks(i - 1, 1)) / (al(i, 1) - al(i - 1, 1)) * _ (a.Value - al(i - 1, 1)) + ks(i - 1, 1) End If End Function
[/vba]
В файле эта же UDF оформлена в виде процедуры, кот. запускается по зеленой стрелке; значение записывается в F6.
Получилась вот такая UDF Interp. На листе в яч. F5 забита формула =Interp(F2;B2:B75;A2:A75), где F2 - текущее значение альфа, B2:B75 - диапазон значений альфа, A2:A75 - диапазон значений кси (диапазоны д.б. одинаковыми). [vba]
Код
Function Interp(a As Range, Arng As Range, Krng As Range) As Single Dim al, ks, i As Integer al = Arng.Value: ks = Krng.Value Do i = i + 1 Loop While al(i, 1) < a.Value If i = 1 Then Exit Function If al(i, 1) = a.Value Then Interp = ks(i, 1) Else Interp = (ks(i, 1) - ks(i - 1, 1)) / (al(i, 1) - al(i - 1, 1)) * _ (a.Value - al(i - 1, 1)) + ks(i - 1, 1) End If End Function
[/vba]
В файле эта же UDF оформлена в виде процедуры, кот. запускается по зеленой стрелке; значение записывается в F6.nilem
Если честно "nilem" Для меня это как то сложновато. Вопрос таков. Куда вбить "альфа" и где смотреть "кси"? И Ты вот написал
Quote (nilem)
На листе в яч. F5 забита формула =Interp(F2;B2:B75;A2:A75), где F2 - текущее значение альфа,
Но файл не мой. Я его открываю, а там 5 вкладок (ИНТЕРПОЛ, INTERPOL, ЭКСТРАПОЛ, УСТАР,УСТ-2) Моей таблицы(моего листа где таблица, "альфа" и "кси") его нет. Как этим пользоваться? Не могли бы пояснить пожалуйста.
Если честно "nilem" Для меня это как то сложновато. Вопрос таков. Куда вбить "альфа" и где смотреть "кси"? И Ты вот написал
Quote (nilem)
На листе в яч. F5 забита формула =Interp(F2;B2:B75;A2:A75), где F2 - текущее значение альфа,
Но файл не мой. Я его открываю, а там 5 вкладок (ИНТЕРПОЛ, INTERPOL, ЭКСТРАПОЛ, УСТАР,УСТ-2) Моей таблицы(моего листа где таблица, "альфа" и "кси") его нет. Как этим пользоваться? Не могли бы пояснить пожалуйста.ronik710
Ребята помогите пожалуйста. В идеале мне надо интерполирование, при внесении в колонку TRIM дробных чисел с одним числом после запятой, и при внесении в колонку SOUNDING дробных чисел с одним числом после запятой.
В колонку TRIM вносятся отрицательные числа, от минус четырёх (-4) до нуля (0) При внесении значения -3.4 интерполяция должна происходить между колонками B - TRIM=-4 и C - TRIM=-3 следующего листа.
Ребята помогите пожалуйста. В идеале мне надо интерполирование, при внесении в колонку TRIM дробных чисел с одним числом после запятой, и при внесении в колонку SOUNDING дробных чисел с одним числом после запятой.
В колонку TRIM вносятся отрицательные числа, от минус четырёх (-4) до нуля (0) При внесении значения -3.4 интерполяция должна происходить между колонками B - TRIM=-4 и C - TRIM=-3 следующего листа.lemvasyl
Такой вопрос: Нужно интерполировать по 2-м и 4-м значениям. Я нашел разные способы но как сделать так чтобы вводить значения между которыми проводится поиск НЕ ПО ОЧЕРЕДИ, а таблично и результаты получать также таблицей. Скажите как? А то много значений и их все переписывать...
Такой вопрос: Нужно интерполировать по 2-м и 4-м значениям. Я нашел разные способы но как сделать так чтобы вводить значения между которыми проводится поиск НЕ ПО ОЧЕРЕДИ, а таблично и результаты получать также таблицей. Скажите как? А то много значений и их все переписывать...Гость
Стащил функцию в свою книгу, все считает как положено, за это спасибо)но при сохранении каждый раз выскакивает предупреждение о наличии элементов актив-х и тому подобное, с Вашим файлом таких проблем нет, в чем же дело?
Quote (Serge_007)
Функция =Interp
Стащил функцию в свою книгу, все считает как положено, за это спасибо)но при сохранении каждый раз выскакивает предупреждение о наличии элементов актив-х и тому подобное, с Вашим файлом таких проблем нет, в чем же дело?Гость