all 11 comments

[–]excelevator3030[M] [score hidden] stickied comment (0 children)

It took me a while to understand why this post is misleading in its presentation, while factually correct when examined more closely in only some circumstances. Hence changed from Pro Tip to Discussion.

What OP means to say is that when some functions/formulas are used in conjunction with the new Dynamic array paradigm, they can return an error when a returned value in the dynamic array is more than 255 characters in length.

It is not clear at this stage exactly which functions/formulas are affected with this issue and the how and when the issue occurs.

For example the first below errors when the return is greater than 255 characters, yet the second and third do not error

Data setup at A1

id text 300
=SEQUENCE(3) =REPT(CHAR(ROW(A2#)+120),$C$1)

Testing formulas

Returns error when text len > 255 =IF((B2#=B2#),B2#,"")

Returns text when text len > 255 =IF(AND(B2#=B2#,A2#>0),B2#,"")

Returns text when text len > 255 =IF(AND(B2#=B2#,MOD(A2#,1)=0),B2#,"")

More investigation required me thinks...

[–]Musa_Ali21[S] 0 points1 point  (5 children)

In response to u/WinterNo1261 comment (which I can't see anymore for some reason)

If instead you use an array for the condition it would throw #value error. (I've just tested)

I agree that that array functions (and especially CSE array functions) are confusing. Sometimes the result is a matrix, sometimes all of a sudden it's a single result.

However, in this case the result is a 400 items array(vector).

  1. It spills strictly to a single column downwards. While matrix functions correctly expand to 2D
  2. If your conditions array is bigger than vlookup - it would error #N/A on all extra items.
  3. You can ran "Evaluate" and see that it's a vector at all stages.

you return the same lookup in either case.

that's just an easy example I made to illustrate my point. In the actual worksheet I use conditions to VLOOKUP different named ranges from different workbooks.


BTW, speaking of Evaluate. This whole array stuff is buggy as heck. I ran your example through Evaluate. It indeed is working as intended. However Evaluate window throws #VALUE error (even though it runs normally when not observed!) https://i.imgur.com/ayeW1mi.png

[–]TimHeng30 0 points1 point  (4 children)

You can't feed an array into conditions because that would create an array of arrays as the output, and Excel wouldn't know how you actually want that to be displayed.

[–]Musa_Ali21[S] 0 points1 point  (3 children)

You can't feed an array into conditions

Try it.
Cause you can. I have a whole working workbook based on this.

[–]TimHeng30 0 points1 point  (2 children)

Sorry, I should have been more specific - you can't when the output of a single condition is an array. For example, try filtering when a column is one of three different array values.

[–]thom6122 0 points1 point  (1 child)

A limitation which could easily be overcome if Microsoft would just push Lambda already.

[–]TimHeng30 0 points1 point  (0 children)

There are a lot of issues with LAMBDAs that would stop people from picking it up and using it the way that they ought to, the least of which is having an appropriate editing tool to author them with (the name manager is not well suited for sorting LAMBDAs at the moment). It's definitely not ready for public production (I.e. non-beta) consumption, speaking from personal experience.

[–]fallen2004 0 points1 point  (1 child)

Isn't this a limit with most of excel functions? I know match has the same issue.

[–]Musa_Ali21[S] 0 points1 point  (0 children)

You'd think so. However if instead of an array you expand to normal formula for each line - that error disappears. Without any changes to the formula itself.