here is a script that will do the task
 
 
Names Default To Here( 1 );
dt = Current Data Table();
For( rows = 1, rows <= N Rows( dt ), rows++,
       If( Rows == 1, counter = 0 );
       If( Is Missing( dt:output[rows] ) == 1,
              counter = counter + 1,
              If( counter > 0,
                     incr = (dt:output[Rows] - dt:output[Rows - counter - 1]) / (counter + 1);
                     For( i = Rows - counter, i <= Rows - 1, i++,
                           dt:output = dt:output[i - 1] + incr
                     );
                     counter = 0;
              )
       );
);
// Set all default referenced memory variables to this unique application
Names Default To Here( 1 );
// Set the variable dt to be a pointer to the current active data table
dt = Current Data Table();
// Loop through the data table from row 1 to the last row and use a
// variable names "rows" as the index
For( rows = 1, rows <= N Rows( dt ), rows++, 
	// If this is row 1 initialize a variable named counter to 1
	If( Rows == 1, counter = 0 );
       
    // If the current row's value for the column named "Output" in the 
	// data table referenced by "dt" is missing (blank, null) increase
	// the counter
	If( Is Missing( dt:output[rows] ) == 1, 
		counter++
	);
	
	// If row is found with a non missing value for the column called Output,
	// and the counter is > 0, which indicates previous rows with missing
	// values, then calculate the required values and place them in their
	// appropriate rows
	If( counter > 0 & Is Missing( dt:output[rows] ) == 0,
		// Calculate the incremental steps to use for the missing cells
		incr = (dt:output[Rows] - dt:output[Rows - counter - 1]) / (counter + 1);
		
		// Loop across the rows with missing values and fill in the data
		For( i = Rows - counter, i <= Rows - 1, i++,
			dt:output[i] = dt:output[i - 1] + incr
		);
		
		// reinitialize the counter
		counter = 0;
	);
);
					
				
			
			
				
	Jim