Каково динамическое решение для линейной интерполяции данных в строке с пропущенными значениями с неопределенным числом последовательностей пропущенных значений?
У меня есть эти данные
Date Data
8/25/2017 980
8/24/2017 64
8/23/2017 593
8/22/2017 595
8/21/2017
8/20/2017
8/19/2017 794
8/18/2017 437
8/17/2017
8/16/2017
8/15/2017
8/14/2017 629
Что если бы я хотел (794-595)/3 в камере 21 августа и 2*(794-595)/3 в камере 22 августа и аналогичным образом (629-437)/4 17 августа, 2*(629-437)/4 в 16 августа и т.д...
И во всем наборе данных есть только 2 недостающие последовательности данных. Но я хочу быть в состоянии сделать все это, не зная заранее количество пропущенных последовательностей.
Как сделать это динамически, без учета количества пропущенных значений между ними?
1 ответ
Решение
Для маршрута формулы вам понадобится вспомогательный столбец:
В строке 2 этого вспомогательного столбца укажите:
=IF(B2="",INDEX(B:B,MATCH(1E+99,$B$1:B1))+((ROW() - MATCH(1E+99,$B$1:B1))*(INDEX(B2:INDEX(B:B,MATCH(1E+99,B:B)),MATCH(TRUE,INDEX((B2:INDEX(B:B,MATCH(1E+99,B:B))<>""),),0))-INDEX(B:B,MATCH(1E+99,$B$1:B1)))/(MATCH(TRUE,INDEX((B2:INDEX(B:B,MATCH(1E+99,B:B))<>""),),0)+ROW()-1-MATCH(1E+99,$B$1:B1))),B2)
И скопировать вниз диапазон
Затем, если вы хотите, вы можете скопировать и вставить значения обратно на исходные данные.