|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
4 | | #1 |
Интерполяция таблиц по строкам и по столбцам. экстраполяция Excel vba
Регистрация: 18.01.2021
Сообщений: 405
|
||
Просмотров: 15748
|
|
||||
геолог Регистрация: 30.01.2016
КМВ
Сообщений: 142
|
Attribute VB_Name = "Interpolate"
'Visual Basic Module for Interpolation 'Experimental Soil Mechanics 'J.P.Bardet 'February 1999 Option Base 1 Option Explicit 'Value obtained by linear interpolation at value Z from arrays X and Y 'INTERL performs an extrapolation when any argument is entered after Y. Function InterL(Z As Single, X As Variant, Y As Variant, Optional Extra) As Single Dim i As Integer, X1, X2 i = 0 X2 = X(1) For Each X1 In X i = i + 1 If Z = X1 And Z = X2 Then InterL = Y(i) Exit Function ElseIf (Z - X1) * (Z - X2) <= 0 And X1 <> X2 Then InterL = Y(i - 1) + (Y(i) - Y(i - 1)) / (X1 - X2) * (Z - X2) Exit Function End If X2 = X1 Next If IsMissing(Extra) Then Exit Function If (X(1) - Z) * (X(1) - X(i)) < 0 Then i = 2 InterL = Y(i - 1) + (Y(i) - Y(i - 1)) * (Z - X(i - 1)) / (X(i) - X(i - 1)) End Function 'Value obtained by power law interpolation at value Z from arrays X and Y 'INTER performs an extrapolation when any argument is entered after Y. Function Inter(Z As Single, X As Variant, Y As Variant, Optional Extra) As Single Dim i As Integer, X1, X2 i = 0 X2 = X(1) For Each X1 In X i = i + 1 If Z = X1 And Z = X2 Then Inter = Y(i) Exit Function ElseIf (Z - X1) * (Z - X2) <= 0 And X1 <> X2 Then Inter = Y(i - 1) * (Y(i) / Y(i - 1)) ^ ((Z - X2) / (X1 - X2)) Exit Function End If X2 = X1 Next If IsMissing(Extra) Then Exit Function If (X(1) - Z) * (X(1) - X(i)) < 0 Then i = 2 Inter = Y(i - 1) * (Y(i) / Y(i - 1)) ^ ((Z - X(i - 1)) / (X(i) - X(i - 1))) End Function Например Interpolate.InterL(0,68;B4:G4;B7:G7) где 1 - число поиска ()0,68) 2- диапазон таблицы содержащий число (обычно первая строка) (B4:G4) 3 - строка или столбец, где искать (B7:G7) |
|||
![]() |
|
||||
Регистрация: 18.01.2021
Сообщений: 405
|
andriadi
У меня к Вам ряд вопросов: Главный: как вы представляете себе перекрестный поиск с интерполяцией в таблице по НЕ КРАЙНИМ столбцам\строкам? В моей практике такой ситуации не случалось. Если бы привели реальный пример такой ситуации - было бы весьма интересно. Дальше: - таблица должна быть как то нормализована по возрастанию/убыванию? - какие разделители десятичной дроби в ней допускаются? --- это продолжение диалога, начатого в другом месте Последний раз редактировалось Петр-и-Алекс, 03.04.2021 в 12:54. |
|||
![]() |
|
||||
Оснащение проходки горных выработок, ПОС, нормоконтроль, КР, АР Блог Регистрация: 30.01.2008
Ленинград
Сообщений: 18,437
|
Файл не имеет смысла.
Для повседневной работы нет необходимости в интерполяции автоматически. Если есть, то всё решается проще. Например, линией тренда по строкам таблицы. Это ещё более перспективно в плане экстраполяции и автоматом можно и сразу видно что куда стремится. Для калькуляторов при необходимости, проще написать что-то упрощённое, без скриптов, в файле калькулятора. Множить макросы ради калькуляторов или начинать калькулятор в чужом файле - бессмысленный риск. Ексель, конечно, морально устарел 10-20 лет назад. Но нет выбора. Более платные вещи и стоят и сложнее и менее популярны. Я бы с радостью освоил какую-нибудь Математику, если бы у меня на каждой работе у каждого она бы стояла. А ексель засуживают авторы математических пакетов... Это тупик, товарищи. Оскал капитализма. ![]() К счастью, это не наш тупик. Нас ничто не сдерживает, кроме желания. ![]() Вообще у меня раньше было огромное желание пойти куда-нибудь подрабатывать дизайнером или постановщиком задач. ![]()
__________________
"Безвыходных ситуаций не бывает" барон Мюнхаузен |
|||
![]() |
|
||||
Регистрация: 18.01.2021
Сообщений: 405
|
Tyhig
в файле содержится пара функций с интерполяцией. и руководство, как ими пользоваться. люди, знающие vba, знают и как перетащить функции в свой проект. ваш подход использовать чужой файл целиком, а не функцию в нем, удивил безмерно... не ожидал, что найдутся люди, думающие подобным образом |
|||
![]() |
|
||||
Регистрация: 18.01.2021
Сообщений: 405
|
прелестный обзор разных типов интерполяций
https://habr.com/ru/post/264191/ убеждает, что для инженеров лучшее - линейная Последний раз редактировалось Петр-и-Алекс, 03.04.2021 в 12:54. |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Excel: объединение ячеек по столбцам | kp+ | Прочее. Программное обеспечение | 26 | 16.12.2022 10:19 |
Проблема создания связи таблиц в AutoCAD 2016 с MS Excel 2016 | alterfiesta | AutoCAD | 15 | 27.06.2019 12:29 |
Связь параметрических блоков и таблиц Excel | EvilBraiN | AutoCAD | 9 | 27.03.2017 06:50 |
Макрос VBA Excel для извлечения таблиц из линий, полилиний, текста из DWG файлов в Excel с помощью NanoCAD/AutoCAD | JZY | Готовые программы | 8 | 14.07.2016 06:31 |