/* The following formula will return a column as an array based on the arguments to the =arrayFormula(). Be sure to delete the "Variable" placeholders.
"_Column_Title" = The heading at the top of the column in the last frozen row.
"_Array_Formula" = The formula to be converted into an array. SPECIFY A RANGE NOT JUST A SINGLE CELL.
"_KEY_COL_LETR_RNG" = The "key" value column usually contains a value in each row, usually used in the =arrayFormula().
"_COLS_QTY" = the number of columns to generate, almost always just one (1).
How it works:
The curly braces surrounding the entire formula create an array starting with the column title followed by the data generated from the =array_Constrain().
The =array_Constrain() surrounding the =arrayFormula() limits the length of the =arrayFormula() column to the last cell containing data within the "key" value column.
The =max() formula determines the last row number in the "key" column that is NOT blank, then subtracts the row number of the "title" label, which also contains this formula. This supplies the "number of rows" argument to the =array_Constrain() formula.
The =arrayFormula() provides the first argument to the =array_Constrain() formula by generating an array based on the application of enclosed fomula for each row there is corresponding data for the enclosed formula to use. If you are not familiar with the =arrayFormula(), please use the many available posts on that subject to further inform yourself.
*/
={"Column_Title__"; Array_Constrain( ArrayFormula( xxx_Array_Formula__ ), Max( ArrayFormula( if( KEY_COL_LETR_RNG_="", "", row(KEY_COL_LETR_RNG_) ) ) ) - row(), 1 COLS_QTY___ ) }