I'm looking for a solution to an ArrayFormula problem where the value I put into column B depends on all of the values of column B above it. (It's not a real circular reference, I can write the solution without an ArrayFormula).
Here's a simple version of what I'm trying to do. Cells in column A contain positive or negative value. If the value in A is positive, the same value will be copied to B. However, if A is negative, the value of A copied to be will be the minimum of either A or the cumulative sum of B for all the cells above it.
A B
1 1
2 2
-2 -2
3 3
-10 -4
This the formula in B2 that I manually copied down, that does this:
=if(A2>0,A2,max(-sum(B$1:B1),A2))
you could view A as a request to either put money in an account (+) or take money out of an account (-) and B is the response to what happens, it either all goes in, or you can pull the max out.
I'm happy to have additional columns to do intermediate calculations if necessary, but I just can't seem to figure out a way to get around the pseudocircular reference where the value to put in Bn depends on Bn-1.
Ideally I'd love to have it set up so that my ranges in the ArrayFormula would be of the form B2:B so that I don't have to worry about ever extending them when the data grows.