Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2013, 22:36   #1
Вл_адимир
Новичок
Джуниор
 
Регистрация: 07.10.2013
Сообщений: 3
По умолчанию Макрос_интерполяция

Помогите, пожалуйста, создать макрос для Excel (2007). Столкнулся впервые с VBA. Спасибо заранее!

Есть 2 столбца значений, значение из столбца "А" соответствует значению из столбца "В". Необходимо получить итоговое проинтерполированное значение в ячейке D1 при вводе в ячейку С1 значения, находящееся в одном из интервалов ячеек столбца "А".

Пример:

-773,00 166,00 -42,20 165,81
-430,00 165,00
0,00 165,9
50,50 166,00
215,50 165,40
Вл_адимир вне форума Ответить с цитированием
Старый 08.10.2013, 00:04   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Зачем макрос? Чем формулы не устраивают?

А если введённое значение не попадает ни в один интервал?
А если попадает сразу в несколько?
А если введено не число, а произвольный текст?
Если ячейка пустая, - это то же самое, что и введённый 0?
EducatedFool вне форума Ответить с цитированием
Старый 08.10.2013, 09:06   #3
Вл_адимир
Новичок
Джуниор
 
Регистрация: 07.10.2013
Сообщений: 3
По умолчанию Интерполяция

Формулы? а можно решить формулами такую задачу? Я просто студент, плохо разбираюсь, поэтому прошу помощи...надеюсь здесь мне помогут.
Судя по логике задачи, если значение не попадает в нужный интервал или введен текст, то в ячейке D1 должно быть "недопустимое значение"; если ячейка С1 пустая, то соответственно D1 тоже пустая;
Ряд чисел по возрастанию, в несколько интервалов не попадает.
Спасибо заранее.
Вл_адимир вне форума Ответить с цитированием
Старый 08.10.2013, 12:03   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Вот такой формулы в D1 должно хватить:
Код:
=ИНДЕКС(B1:B6;ПОИСКПОЗ(C1;A1:A6;1);) + (ИНДЕКС(B1:B6;ПОИСКПОЗ(C1;A1:A6;1)+1;) - ИНДЕКС(B1:B6;ПОИСКПОЗ(C1;A1:A6;1);))
 * (C1 - ИНДЕКС(A1:A6;ПОИСКПОЗ(C1;A1:A6;1);)) / (ИНДЕКС(A1:A6;ПОИСКПОЗ(C1;A1:A6;1)+1;) - ИНДЕКС(A1:A6;ПОИСКПОЗ(C1;A1:A6;1);))
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос_интерполяция Вл_адимир Помощь студентам 0 07.10.2013 16:44