Each array is listed horizontally, has n columns and a variable number of rows. Every array has the same n number of columns. There is a blank column between each array.
They can be combined using vstack(array1,array2,etc...) but this requires knowing how many arrays there are. Is there a way to vstack all of the arrays where the number of arrays is determined by whether there is a column heading populated in the first column of each array?
So if cell A1 (column heading) is not blank, there is an array in A:C. If E1 is not blank, then there is an array in E:G, etc... Since M1 is empty in the above example data, there are no more arrays. The number of rows varies with each array but is not more than 1000. The data within the array could be anything including some empty cells. However each row of data has at least one populated cell.
Replacing the n/a and errors with blanks is OK too.
Using only an excel formula, no VBA please. Possible solutions could be reduce() or a recursive lambda function, which is probably the answer, splitting the large range of data into the smaller arrays one at a time and stacking them until there are no smaller arrays left to stack. Working to find it as a solution.
If there are 3 arrays, then all three should be vstacked. If there are 10, then all ten, etc. The final array should not change the order of the rows or be data dependent. The column headings will be there and will be the same.



Try:
Amend the last column referenced (AQ here) as required.
Note that this set-up may fail if any of the 'blanks' are in fact null strings (""), e.g., as a result of formulas in those cells.