# Tutorial: Arrayformula in Google Sheets, good practices & how to overcome Arrayformula restrictions with scripts

**URL:** <https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727>\
**Category:** Ask for Help\
**Created:** [May 25, 2020, 1:10pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727 "2020-05-25T13:10:24Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [May 25, 2020, 1:10pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/1 "2020-05-25T13:10:24Z")

</div>

Hi,

Today I will show you the script that can make copying formulas down work, when it does not work with arrayformula.

But first, let’s have some introductions about arrayformula, for those who has not used this before in Google Sheets, some equivalents in Glide and some good practices while using it. I hope it can help you in building your Glide apps as well as applying it in your normal day job.

> **1/ Definition**
>
> Arrayformula is defined as “a range, mathematical expression using one cell range or multiple ranges of the same size, or a function that returns a result greater than one cell.”
> 
> Before, you would have to copy down formulas when you want it to work with the whole column. This is not the case now with arrayformula available.

> **2/ Example usage**
>
> _Example 1: Put in cell C1: ARRAYFORMULA(A1:A&" "&B1:B), it will concatenate all values from each row of A & B to the corresponding row in C._
> 
> ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/d/d2f73dba861a42ecf9fb0fbd119677531ad07a23.png)
> 
> This is equivalent to a Template column in Glide with settings: “A B”, pointing A to column A & B to column B.
> 
> _Example 2: Let’s say you want to calculate the total value of each order, with two input columns: quantity & selling price. The third column can be called ‘order value’_
> 
> The formula to put in cell C2 of the order value column would look like this:
> 
> ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/f/f46426b7f5b0b40451f60a2d6dd4722569e09d99.png)
> 
> This is equivalent to a Math column in Glide, with the formula being Quantity \* Selling price.

> **3/ Good practices**
>
> _ **3.1. Care about the empty inputs** _
> 
> In the case just above, when I load the data into my Glide test app, it tells me that I have exceeded the 500 free rows for the Free plan. Why did that happen?
> 
> That’s because the arrayformula automatically fills down value, in this case zeros, to rows where we don’t have input value.
> 
> To take care of that, and this would be applicable for all cases, we can use something like:
> 
> ```
> =ARRAYFORMULA(IF(A2:A<>"",A2:A*B2:B,""))
> 
> ```
> 
> This will tell the formula to only make a calculation where the A column is not null, otherwise return a null value.
> 
> _ **3.2. Keep the arrayformula in the headers** _
> 
> Instead of putting the arrayformula in row 2 where the data starts, you can put it in the header and never have to worry about accidentally delete that row ever again.
> 
> This formula below would create an array, populating the first cell with the header name, and the arrayformula starts from below that.
> 
> ```
> ={"Order value";ARRAYFORMULA(IF(A2:A<>"",A2:A*B2:B,""))}
> 
> ```
> 
> _ **3.3. Only calculates and show values when the row has data** _
> 
> For the case above, if you notice it, I have wrapped a condition that only when A2:A has data will the calculation A2:A\*B2:B be processed. This is to avoid sending null or 0 values to the rows without data and potentially make you hit your Glide rows limit.
> 
> It can go like this:
> 
> ```
> =ARRAYFORMULA(IF(A2:A<>"",A2:A*B2:B,""))
> 
> ```
> 
> or like this:
> 
> ```
> =ARRAYFORMULA(IF(LEN(A2:A),A2:A*B2:B,""))
> 
> ```
> 
> which takes into consideration the length of the string in column A. Only when it returns a number higher than 0 will the calculation be triggered.
> 
> _ **3.4. Avoid the #ERROR or #VALUE with VLOOKUP, FIND and many other formulas** _
> 
> You may have known that VLOOKUP, FIND and many other formulas will return an error, whether it be #ERROR or #VALUE if they can’t find a match with the conditions provided. In an ARRAYFORMULA context, this can break your formula and resulting in problems with your array calculation.
> 
> To avoid this, we can use the IFERROR formula, which has the syntax: IFERROR(calculation, value if calculation returns error), which makes the VLOOKUP or FIND return a designated value if it can not find a match.
> 
> It can go like this:
> 
> ```
> =ARRAYFORMULA(IF(A2:A<>"",IFERROR(VLOOKUP(A2:A,range to lookup, column to lookup),""),""))
> 
> ```
> 
> In this case, if the VLOOKUP can not find a match, it will return a null value. You can change it to 0 or whatever you want depends on your case.

> **4/ When arrayformula doesn't work, what do we do?**
>
> It has been documented that arrayformula does not work with some specific formulas, INDIRECT being one of them, and just returns the first row result.
> 
> Furthermore, the custom functions you write with Google Scripts won’t work with arrayformula as well, such as the one I wrote to compute distance & travel time I have written about here.
> 
> > [@Concept for 5km delivery constraint & time taken to travel](https://community.glideapps.com/t/concept-for-5km-delivery-constraint-time-taken-to-travel/8946):
> >
> > Hi Gliders, Inspired by this posts regarding how some businesses can’t offer a delivery outside their 5km radius. I developed a solution to calculate distance between customer’s input address and the business’ fixed address. The use of postcode was proposed in some threads, but I don’t think it would have the same effect as taking the exact distance via Google. My test app link: [geocodetest.glideapp.io](http://geocodetest.glideapp.io) Demonstration video: [ezgif-1-223b6941057e] User flow: Sign in via mail, if user h…
> 
> In cases like this, Scripts is the alternative to come to. Navigate to Tools \> Script Editor in your sheets to write and save scripts.
> 
> One Script that I have been using is:
> 
> ```
> function fillFormula() {
> var ss = SpreadsheetApp.getActiveSpreadsheet();
> var sheet = ss.getSheetByName('Hotels distance');
> var lr = sheet.getLastRow();
> var fillDownRange = sheet.getRange(lr, 4, 1);
> sheet.getRange("D"+(lr-1)).copyTo(fillDownRange);
> }
> 
> ```
> 
> This works in the following steps:
> 
> - The bot goes to the sheet you want to copy the formula down, specified here is the ‘Hotel distance’ sheet.
> - Then it determines what is the last row with content in the getLastRow() function.
> - It uses that last row number to get the right fill down range, in this case is the cell in the last row, at column 4 (because I want to fill down column D here), and fill only 1 cell. That’s the meaning of lr, 4, 1.
> - Then it grabs the cell just above it, which has already been populated with a formula (the getRange(“D”+(lr-1)) part), and copy to the determined fill down range.
> 
> Here’s how it works in real time when I input new addresses to calculate distance (I hid the emails and addresses above):
> 
> ![ezgif-1-395ef22c8140](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/e/e79ed72843f7a195d0e777a2c9f457b5beab0055.gif)
> 
> Another alternative of this is:
> 
> ```
> function fillFormula() {
> var ss = SpreadsheetApp.getActiveSpreadsheet();
> var sheet = ss.getSheetByName('Hotels distance');      
> var vals = sheet.getRange("D2:D").getValues();
> var lr = vals.filter(String).length;
> sheet.getRange("D"+(lr)).autoFillToNeighbor(SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);}
> 
> ```
> 
> It grabs the range of values from D2 to the last row of column D, then use a filter to get just non-blank values. Last row number here is the length of that string, which can be inferred as the last row with formula (different from the method used above).
> 
> That value is then used to grab the last cell with formula in the range, and an autoFillToNeighbour method is called to fill the next row with according formula.

> **5/ Setting the triggers**
>
> After we’re done with the scripts, navigate to Edit \> Current Project’s Triggers.
> 
> ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/6/68c8d276681ddb0ebbf0b0a1b6297463729c7086.png)
> 
> Click “Add Trigger” and then set the right function to run, and the event type being “On change” for it to work with Glide edits.
> 
> ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/6/6a3393e0bf191013245fb3ba80263ab5cb1b68c6.png)

Hopefully this tutorial helps. Feel free to comment here or message me if you need help implementing it.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [May 25, 2020, 1:13pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/2 "2020-05-25T13:13:54Z")

</div>

This post was inspired by:

- A discussion with @nathanaelb when he solved a problem by the sequence function.

> [@Group by to filter data](https://community.glideapps.com/t/group-by-to-filter-data/9467/14):
>
> You can wrap arrayformula() around sequence() to create decimal numbers within the sequence, since the sequence() function does not allow decimal counts: [image] What I don’t know how to do is pull sequence() down the column. man_shrugging

- A time when I helped @Robert_Petitto when his arrayformula just works with the first row and it populates the other rows with the same information.

 ![Screen Shot 2020-05-13 at 10.33.52 PM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/d/dcb38a22ad6738396d5df401537f1e25d3e82255.png)

---

<div class="post-metadata">

**Author:** ![Erni\_D](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/erni_d/32/9023_2.png) [@Erni\_D](https://community.glideapps.com/u/Erni_D)\
**Post date:** [May 25, 2020, 2:30pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/3 "2020-05-25T14:30:57Z")

</div>

I’m learning a lot from you @ThinhDinh , thanks for sharing knowledge.  
Conosco el idioma pero hay referencias técnicas que aveces se me dificulta entender. Pero sigo avanzando pronto subiré mi primer template! Cheers and thanks again!

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [May 25, 2020, 2:37pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/4 "2020-05-25T14:37:01Z")

</div>

Hi Erni, we’re looking forward to your first template and if you have any problems, feel free to have a post asking about it, I’ll try to help!

Since my school days, I have always believed in a knowledge sharing culture. I always try to share my knowledge with my friends and my colleagues, believing that by helping them reach a higher level, the standard of the company/community will also be raised, hence getting more quality discussions and more ideas to work with, which benefits all parties!

---

<div class="post-metadata">

**Author:** ![Erni\_D](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/erni_d/32/9023_2.png) [@Erni\_D](https://community.glideapps.com/u/Erni_D)\
**Post date:** [May 25, 2020, 2:52pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/5 "2020-05-25T14:52:43Z")

</div>

Thanks a lot, I’ll take your word on that. I’m still working around Oder retrieving but my next stop will be adding the distance feature you explained the other day!

Cyu around and awesome way to explain and link the posts to the original threads to get the big picture!

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [May 25, 2020, 2:53pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/6 "2020-05-25T14:53:52Z")

</div>

When you come to distance part, send me a personal message so I can help setting it up!

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [May 28, 2020, 6:50pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/7 "2020-05-28T18:50:47Z")

</div>

Thanks for the post. I will be referencing this for sure in the future. It might be worth it in the “Best practices” section to include `iferror()` wraps for `vlookup` and `arrayformula(if(len(x),y,z)` to avoid errors in the spreadsheet.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [May 28, 2020, 11:29pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/8 "2020-05-28T23:29:33Z")

</div>

Thanks Robert, I will update this today!

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [May 30, 2020, 1:02am UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/9 "2020-05-30T01:02:36Z")

</div>

Added the good practices of using LEN conditions to only provide value for rows with data, and IFERROR to avoid errors in lookup, find, etc.

---

<div class="post-metadata">

**Author:** ![XceL](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/xcel/32/91079_2.png) [@XceL](https://community.glideapps.com/u/XceL)\
**Post date:** [June 1, 2020, 3:57am UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/10 "2020-06-01T03:57:56Z")

</div>

This changes so many useless things I used to do 😂 🤣  
Thank you!!!

---

<div class="post-metadata">

**Author:** ![Vicio\_Sciascia](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/vicio_sciascia/32/4940_2.png) [@Vicio\_Sciascia](https://community.glideapps.com/u/Vicio_Sciascia)\
**Post date:** [June 20, 2020, 9:42am UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/11 "2020-06-20T09:42:05Z")

</div>

Hi @ThinhDinh,  
thank you so much for sharing this tutorial.  
I’m trying with the good practices but i encountered an issue.

In column ‘U’ I have numeric values fetched from an API through ImportJSON function. For some reason Google Sheet doesn’t seem to recognize this data as numbers, so I made this trick to create an auxiliary column ‘Y’ with an ARRAYFORMULA that simply adds a zero to the values in ‘U’ column.

This trick works fine with a simple ARRAYFORMULA I put on Y2 cell:  
`=ARRAYFORMULA(IF(U2:U="","",U2:U+0))`

 ![Schermata 2020-06-20 alle 11.39.08](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/3/3d874fa55291a5100a7f33506f6775d36b76d37e.png)

Now, following the tutorial, I’m trying to do something more robust putting on Y1 this formula:

`={"Aqius Value";ARRAYFORMULA(IF(AND(H2:H="",U2:U=""),"",IF(AND(H2:H<>"",U2:U<>""),U2:U+0,IF(AND(H2:H<>"",U2:U=""),"No data"))))}`

And this is what I get:

 ![Schermata 2020-06-20 alle 11.21.08](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/2/286020f116e6e5d7eb25a00e14b9ce11864ad8de.png)

What I’m doing wrong? Any idea?

Thank you

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 20, 2020, 9:46am UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/12 "2020-06-20T09:46:36Z")

</div>

Do you mind sharing a copy of the data to [ariesarsenal@gmail.com](mailto:ariesarsenal@gmail.com) so I can try directly on it? Thank you. Just that sheet will be enough.

Edit: Found the problem. Don’t use AND in ARRAYFORMULA because it won’t work.

> <https://stackoverflow.com/questions/43710792/arrayformula-and-and-formula-in-google-sheets>

Right formula for your case:

```
={"Aqius Value";ARRAYFORMULA(IF((H2:H="")*(U2:U="")=1,"",IF((H2:H<>"")*(U2:U<>"")=1,VALUE(U2:U),IF((H2:H<>"")*(U2:U="")=1,"No data",""))))}

```

You can use the +0 method, or the VALUE one.

---

<div class="post-metadata">

**Author:** ![AyS\_0908](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ays_0908/32/27349_2.png) [@AyS\_0908](https://community.glideapps.com/u/AyS_0908)\
**Post date:** [June 20, 2020, 12:23pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/13 "2020-06-20T12:23:35Z")

</div>

Hi @ThinhDinh very instrumental, thanks!

I’m trying to put into practice your lesson and have it worked with “Counta”; unfortunately it counts results for all rows, instead of row-by-row  
=arrayformula(if(isblank(C2:C)=TRUE;"";COUNTA(G2:J)))

If you have 2 mn to give me a clue about the mistake I have done, would be so kind of you (as always!).

(sheet “Planning”, column L) [https://docs.google.com/spreadsheets/d/19BpuR1Atevp0zoYZGsmgwkb4btCrgIjW79lgx0BDng8/edit?usp=sharing](https://docs.google.com/spreadsheets/d/19BpuR1Atevp0zoYZGsmgwkb4btCrgIjW79lgx0BDng8/edit?usp=sharing)

Many thanks in advance!

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 20, 2020, 1:06pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/14 "2020-06-20T13:06:22Z")

</div>

If I’m understanding it right, you want to have a sum of H to K for every row?

---

<div class="post-metadata">

**Author:** ![AyS\_0908](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ays_0908/32/27349_2.png) [@AyS\_0908](https://community.glideapps.com/u/AyS_0908)\
**Post date:** [June 20, 2020, 1:06pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/15 "2020-06-20T13:06:43Z")

</div>

Yes exactly…

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 20, 2020, 1:29pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/16 "2020-06-20T13:29:20Z")

</div>

The right formula would be

```
=arrayformula(if(isblank(C2:C);"";H2:H+I2:I+J2:J+K2:K))

```

You can’t make that work horizontally, make it vertically.

---

<div class="post-metadata">

**Author:** ![AyS\_0908](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ays_0908/32/27349_2.png) [@AyS\_0908](https://community.glideapps.com/u/AyS_0908)\
**Post date:** [June 20, 2020, 4:09pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/17 "2020-06-20T16:09:06Z")

</div>

The “+” between each of course!  
Thanks it works well  
Cheers

---

<div class="post-metadata">

**Author:** ![AyS\_0908](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ays_0908/32/27349_2.png) [@AyS\_0908](https://community.glideapps.com/u/AyS_0908)\
**Post date:** [June 20, 2020, 4:20pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/18 "2020-06-20T16:20:27Z")

</div>

Sorry @ThinhDinh, in fact I answered too quickly to your original question: the objective is not a _sum_ per line, but to _count_ the non-empty cells **per** line.

When I use the formula below, while it’s a ‘counta’, it makes a sum of the non-empty cells of **all** lines included in the arrayformula…  
=arrayformula(if(isblank(D2:D);"";COUNTA(H2:H;I2:I;J2:J;K2:K)))

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 20, 2020, 4:28pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/19 "2020-06-20T16:28:40Z")

</div>

Can you try:

```
=arrayformula(if(isblank(D2:D);"";(H2:H<>"")+(I2:I<>"")+(J2:J<>"")+(K2:K<>"")))
```

---

<div class="post-metadata">

**Author:** ![AyS\_0908](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ays_0908/32/27349_2.png) [@AyS\_0908](https://community.glideapps.com/u/AyS_0908)\
**Post date:** [June 20, 2020, 4:44pm UTC](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727/20 "2020-06-20T16:44:48Z")

</div>

It works now! Thanks very much

[Next page](https://community.glideapps.com/t/tutorial-arrayformula-in-google-sheets-good-practices-how-to-overcome-arrayformula-restrictions-with-scripts/9727.md?page=2)
