Don't use array formulas, use regular formulas.

For example, let's say you have a formula that adds column B if the value in column A is greater than 10. Don't create an array formula with a conditional to do this. Instead make a new column C with the formula:

```
=If( $A > 10, $B, 0 )
```

So the third column contains either B's value if the condition is met or 0 if it is not met. Now just sum column C. This method is usually a lot faster than an array formula. It is called a "helper column".

If it is still slow to calculate, use macros or VBA to compute the values; that way you only have to compute them once, not recaculate them if things don't change. So, in the above example, instead of using the conditional formula, we can use a macro (or VBA code) to compute the If-formula and put the result in the cell. Then run the macro whenever you need to compute the table and generate values. With no conditionals (If-statements) in the spreadsheet itself, it will calculate much faster.

**How to Do Everything in Memory**

If you want to get rid of the sheet entirely, you can do everything in memory using static variables in a VBA code module:

```
Dim MyArray(1000, 2000) As Double
Sub computeMyArray()
... compute all the values of MyArray
End sub
Function GetValueFromMyArray( Dim x as Integer, Dim y as Integer )
GetValueFromMyArray = MyArray( x, y )
End Function
```

You can then use this function in any cell of your workbook to get values out of the array you created which is memory. For example, a cell in your workbook could have the formula:

```
=GetValueFromMyArray( 5, 6 )
```

This would retrieve the 5th row, 6th of the array that is in memory.

`Sheet2`

, if your goal is just "avoid visualizing the intermediate result".4more comments