Lambda Recursion Help

samdthompson

New member
Joined
Aug 7, 2018
Messages
8
Reaction score
0
Points
1
Excel Version(s)
365
Hello, I have built a recursive Lambda which does not recurse. I cannot for the life of me work out which bit is going wrong other than the recursion. The main formula works well and manual recursion works exactly as it should. The aim is to remove "R" from the grid based on how many X's there are around them. The recursion should stop when there are no additional X's to remove. Note There may still be some X's left but not any that require removal.

Formula:
=_ValueRecursion(_rng,_initial_value)

Named Range:

=LAMBDA(_rng,_initial_value,
LET(
_up, OFFSET(_rng, -1, 0),
_right, OFFSET(_rng, 0, 1),
_down, OFFSET(_rng, 1, 0),
_left, OFFSET(_rng, 0, -1),
_x, MAP(_up, _right, _down, _left, LAMBDA(u,r,d,l, OR(u = "x", r = "x", d = "x", l = "x"))),
_txttosplit, _up & "," & _right & "," & _down & "," & _left, _txtsplit, LEN(_txttosplit) - LEN(SUBSTITUTE(_txttosplit, "R", "")),
_calc, IF(_rng = "W", "W", IF(_rng = "", "", IF(_x * _txtsplit = 1, "X", _rng))),
_current_count, COUNTA(FILTER(TOCOL(_calc), TOCOL(_calc) = "X")),
_finish, IF(_initial_value = _current_count, _calc, _ValueRecursion(_calc, _current_count)),
_finish)
)


Cheers
 
Last edited:
Solved.

This is unable to work as offset will not work in a recursion. Index can be used but in this specific use case the solution would be too large.

back to the drawing board
 
Cross-posted here: https://www.excelforum.com/excel-formulas-and-functions/1426857-recursion-help.html

Most forums have the same rule about cross-posting. You don't appear to be aware of this, so please take a moment to read this:

Thank you for your co-operation in future.
 
Back
Top