Excel doesn't work the same way as google spreadsheets. You can't update cells other than the one the formula is on from a custom formula. Its the same thing in spreadsheets, but the crucial difference with sheets is that you don't need to know in advance the size and shape of arrayformula results, whereas in excel you do.
The custom function to do this itself is very straightforward, using the libraries in cDataSet.xlsm - here's an example of what it would look like, along with calling it below.
In theory you could amend the below to return an array of results, and invoke it like an array formula. However, I recommend that you create a table of queries you want to do along with places to put the results, and execute then as below via a button on the page
.. import function
Public Function importRestAny(url As String, workSheetName As String) As Long
Dim cr As cRest
' will clear a sheet and do a rest query
wholeSheet(workSheetName).Cells.clear
' get that data and deduce the headings
Set cr = restQuery(workSheetName, , , , url, , , False, , , True, , , , , , , False)
makeHeadingsFromData cr
' populate, avoiding doing the query again
With restQuery(workSheetName, , , , url, , , , , , True, cr.jObject.jString, , , , , , False)
' return the number of rows populated
importRestAny = .dset.rows.count
.tearDown
End With
cr.tearDown
End Function