Здравствуйте уважаемые форумчане. На учёбе столкнулся со следующей задачей. Есть таблица, в которой находятся измеренные прибором значения. Прибор не может выполнять измерения с необходимой частотой и из-за этого между двумя реальными измерениями образуются пустые строки, которые необходимо заполнить. Требуется сделать своеобразную интерполяцию значений, т.е. заполнить пустые строки таким образом, чтобы виртуальные измерения плавно ложились между фактическими. Задача усложняется тем, что количество пустых строк может меняться, т.е.между одними измерениями пустых строк может и не быть, а между другими 4 или 5. Для простоты понимания сделал пояснение в виде рисунка.
Для решения этой задачи нужен макрос VBA, который должен «чувствовать» заполненные ячейки и заполнять пустые ячейки между ними. К сообщению прикрепил фрагмент файла для примера. Заранее благодарю всех откликнувшихся за помощь.
P.S. По сути то, что мне требуется, является «разбавлением» реальных измерений, что в инженерной практике недопустимо. Но проект учебный и в силу обстоятельств и неимением другого выхода, преподаватель дал добро на такого рода вольности. Поэтому обращаюсь за помощью.
Pelena и MCH ваши формулы считают значения, но очень хочется то же самое в vba, чтобы входным параметром был только столбец со значениями, а дальше макрос выполнял вычисления сам. Также заметил особенность - при добавлении новых значений появляется ошибка деления на ноль в строках 253, 254, 255.
C.M., ваше решение немного не то, что требуется. Как я понял,вы нашли среднюю линию всех значений. Задача же заключается в том, чтобы заполнить пустые ячейки значениями, которые ложились бы на прямую, проведённую между двумя соседними измерениями.
TheBestOfTheBest, за координату X принимается номер измерения, начиная с 0. Прикрепил к первому посту файл с решением в виде формулы, предложенной здесь.
Pelena, в первом посте во втором абзаце я говорил, что нужен макрос. Отредактировал текст первого сообщения.
С.М., вы абсолютно правы, я ошибся. То, что мне требуется - это интерполяция. Извиняюсь за свою оплошность. Поправил первое сообщение.