Forum Discussion

ecovonrein's avatar
ecovonrein
Iron Contributor
Mar 30, 2023

MAP x MAP

Can anyone tell me what is wrong with this formula?

=MAP(C23:D23;C24:D24;LAMBDA(a;b;SUM(MAP(C5:G5;C6:G6;C7:G7;LAMBDA(c;d;e;1)))))

I get #VALUE #VALUE.

Thanks.

PS: Works when you replace the SUM() with 1.  (Gives 1 1.)

PPS: Putting the SUM() inside a named second Lambda (which would return 5) doesn't improve things.

  • ecovonrein 

    Why don't you post something closer to your actual problem?  I am sure we can help and so, save you some pain!  For example, YEARFRAC tends to play better if you put a + sign in front of multi-cell range references to convert them to arrays.  If you are trying to return the results in a 2D grid, MAP has an annoying flaw in that it will not return a nested array / array-of-arrays (i.e. the correct answer to your problem).  Workarounds include MAKEARRAY and REDUCE combined with VSTACK.

  • ecovonrein's avatar
    ecovonrein
    Iron Contributor
    Never mind. SCAN did not work me just now either, even straight from the manual. Seems that my Excel session had lost the plot. Shut it all down and started again, 5 5. All good.
  • ecovonrein's avatar
    ecovonrein
    Iron Contributor
    I spoke too soon. This function is utter hit&miss. In a new session, it will work. And then at some point it packs up. Together with SCAN. That too packs up at random. Unbelievable.
  • ecovonrein's avatar
    ecovonrein
    Iron Contributor

    This has been my worst experience with Lambdas to date. The stable work-around seems to be:

    =BYCOL(VSTACK(C23:D23;C24:D24);
    LAMBDA(x;LET(
    a;INDEX(x;1;1);
    b;INDEX(x;2;1);
    SUM(BYCOL(VSTACK(C5:G5;C6:G6;C7:G7);
    LAMBDA(y;LET(
    c;INDEX(y;1;1);
    d;INDEX(y;2;1);
    e;INDEX(y;3;1);
    1
    ))
    ))
    ))
    )

    That is, I VSTACK the input ranges into BYCOL and then unpack the stack inside the LAMBDA.  Weird.

    • PeterBartholomew1's avatar
      PeterBartholomew1
      Silver Contributor

      ecovonrein 

      Forgive me for asking, but what are you trying to achieve?  The formulas do not actually use the contents of the row arrays you reference except to count the cells in one and repeat the result.

      • ecovonrein's avatar
        ecovonrein
        Iron Contributor

        No shame in asking. The real thing - I only post the reductio ad absurdum to highlight the issue - periodifies multiple invoices (MAP#1) into multiple accounting periods (MAP#2). The whole experience has left me traumatized. At one point I was receiving results in every other cell. I am sure that there is a bug. But what that might be, we will never find because it is sadly (but reliably) intermittent.

      • ecovonrein's avatar
        ecovonrein
        Iron Contributor

        Ha ha, Sergei. There must be a million ways to arrive at 5 5. ğŸ™‚ The issue is that the real Lambda calls on YEARFRAC, and YEARFRAC does not play nice when fed vectors.  So I must iterate over the dataset.

Resources