Fills any missing or null values in the specified column with the most recent non-blank value, as determined by the specified window of rows before and after the blank value.

fill(myNumber,-1,0)

Output: Returns all values from the myNumber column with any null cells filled by the most recent non-blank value.

fill(myNumber,-5,4)

Output: Returns all values from the myNumber column with any null cells filled by the most recent non-empty value within the window 5 rows before the current row and 4 rows after it.

fill(col_ref, int_rows_before, int_rows_after) order: order_col [group: group_col]


ArgumentRequired?Data TypeDescription
col_refYstringName of column whose values are applied to the function
int_rows_beforeYinteger

Number of rows before current row to scan for non-empty value. Default is -1, which scans all rows before.

int_rows_afterYintegerNumber of rows after current row to scan for non-empty value. Default is 0, which scans no rows after.

For more information on the order and group parameters, see Window Transform.

col_ref

Name of the column whose values are filled when null. 

Required?Data TypeExample Value
YesString (column reference)myColumn

int_rows_before

Number of rows before the current row to scan for the most recent non-empty value.

Required?Data TypeExample Value
YesInteger5

int_rows_after

Number of rows after the current row to scan for the most recent non-empty value.

Required?Data TypeExample Value
YesInteger5

Example - Fill with quarterly forecast values

Your monthly sales data includes amount sold for each month. However, the source system only provides the quarterly forecast as part of the data for the first month of each quarter. You can use the FILL function to add the prior forecast to each month's data. 

Source:

DateAmountForecast_Qtr
1/31/155231400
2/28/15135 
3/31/15824 
4/30/153051500
5/31/15763 
6/30/15421 
7/31/156061600
8/31/15477 
9/30/15785 
10/31/154431700
11/30/15622 
12/31/15518 

Transformation:

You can use the following transformation to fill the prior forecast value for each blank month in the Forecast_Qtr column. Note that the order parameter must be set to Date to establish the proper sorting:

 

You can now delete the Forecast_Qtr column and rename the generated window column to the deleted name.

To see how you are progressing each month, you might use the following transformation, which computes the average forecast for each month:

You can then compare this value to the actual Amount value for each month:

Results:

DateAmountForecast_QtrForecast_Month_AvgMonthActualVForecast_Pct
1/31/155231400466.6712.07
2/28/151351400466.67-71.07
3/31/158241400466.6776.57
4/30/153051500500-39.00
5/31/15763150050052.60
6/30/154211500500-15.80
7/31/156061600533.3313.63
8/31/154771600533.33-10.56
9/30/157851600533.3347.19
10/31/154431700566.67-21.82
11/30/156221700566.679.76
12/31/155181700566.67-8.59