Xlambda
Well-known Member
- Joined
- Mar 8, 2021
- Messages
- 837
- Office Version
- 365
- Platform
- Windows
AXMAS , AX two Xmas's trees design.
AX is a "tree" that is already decorated, does not call any other lambda. The ornaments are embedded in the function.
AXMAS is an undecorated one. We can choose our own ornaments array "or". Call AFLAT.
AFLAT , flattens the ornament array, and gives us the versatility to deal with arrays of any shape, size, dimensions, with blanks/null strings, ranges, or other array formulas.
Both designs, randomly, change the display of ornaments every time spreadsheet recalculates, or if we hit F9.
Both lambdas share same concept design, creating a Xmas tree shape, a "triangular" array that can be filled with random values.
A triangular array is like designing a symmetric staircase, it has stairs or steps, and has 2 input parameters "ht", the approximate total height, and "sh", each stair height. Each stair width or depth is by default 1. Knowing these parameters, the function knows how to calculate nr. of steps, exact total height to accommodate nr. of steps and total width footprint of the "staircase".
Both lambdas share same ornament topper (2 parts), and same tree base, (last row) where presents boxes are placed. First variables after LET.
AXMAS(ht,sh,or)
AX(ht,sh)
AX is a "tree" that is already decorated, does not call any other lambda. The ornaments are embedded in the function.
AXMAS is an undecorated one. We can choose our own ornaments array "or". Call AFLAT.
AFLAT , flattens the ornament array, and gives us the versatility to deal with arrays of any shape, size, dimensions, with blanks/null strings, ranges, or other array formulas.
Both designs, randomly, change the display of ornaments every time spreadsheet recalculates, or if we hit F9.
Both lambdas share same concept design, creating a Xmas tree shape, a "triangular" array that can be filled with random values.
A triangular array is like designing a symmetric staircase, it has stairs or steps, and has 2 input parameters "ht", the approximate total height, and "sh", each stair height. Each stair width or depth is by default 1. Knowing these parameters, the function knows how to calculate nr. of steps, exact total height to accommodate nr. of steps and total width footprint of the "staircase".
Both lambdas share same ornament topper (2 parts), and same tree base, (last row) where presents boxes are placed. First variables after LET.
AXMAS(ht,sh,or)
Excel Formula:
=LAMBDA(ht,sh,or,
LET(t,UNICHAR(11088),i,UNICHAR(9618),p,UNICHAR(127873),
o,AFLAT(or),n,ROWS(o),h,MAX(9,ht),s,MAX(3,sh),ns,ROUNDUP(h/s,0),y,ns*s+1,x,2*ns-1,r,SEQUENCE(y),c,ABS(SEQUENCE(,x)-ns),
a,QUOTIENT(r-1,s)>=c,b,INDEX(o,RANDARRAY(y,x,1,n,1)*a),w,SWITCH(r,1,t,2,i,y,IF(c<ns-2,p,""),b),
IF(a,w,"")
)
)
Excel Formula:
=LAMBDA(ht,sh,
LET(t,UNICHAR(11088),i,UNICHAR(9618),p,UNICHAR(127873),q,SEQUENCE(44,,10035),o,UNICHAR(IF(q>10058,q+117698,q)),
n,44,h,MAX(9,ht),s,MAX(3,sh),ns,ROUNDUP(h/s,0),y,ns*s+1,x,2*ns-1,r,SEQUENCE(y),c,ABS(SEQUENCE(,x)-ns),
a,QUOTIENT(r-1,s)>=c,b,INDEX(o,RANDARRAY(y,x,1,n,1)*a),w,SWITCH(r,1,t,2,i,y,IF(c<ns-2,p,""),b),
IF(a,w,"")
)
)
AXMAS.xlsx | |||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | AH | AI | AJ | AK | AL | AM | AN | AO | AP | AQ | AR | AS | |||
1 | AXMAS(ht,sh,or) | ornaments array sample | |||||||||||||||||||||||||||||||||||||||||||||
2 | ht: approx.. height; if ht ignored or <9 => ht=9, (min tree height=9) | ❀ | ❁ | ❂ | ❃ | ❅ | ❆ | ? | ? | ✿ | ✽ | ✾ | |||||||||||||||||||||||||||||||||||
3 | sh: each "step" height; if ignored or <3 =>sh=3 (3 min."stair" height=3 ) | smallest tree | ht,15,sh,4 | ||||||||||||||||||||||||||||||||||||||||||||
4 | or: ornaments array, any array, any shape, any values | ht,,sh,,(ignored) | =AXMAS(15,4,X2:AH2) | ||||||||||||||||||||||||||||||||||||||||||||
5 | Increasing sh value makes triangle's top angle smaller, (higher tree "slope") | =AXMAS(,,X2:AH2) | ⭐ | ||||||||||||||||||||||||||||||||||||||||||||
6 | For better visual experience, change the grids width to tiny squares, all centered aligned. | ⭐ | ▒ | ||||||||||||||||||||||||||||||||||||||||||||
7 | Predetermined ornaments, topper, 2 parts, tree base,present boxes. | ▒ | ✿ | ||||||||||||||||||||||||||||||||||||||||||||
8 | If you want to change them, just after LET, variables t,i,p | ? | ❁ | ||||||||||||||||||||||||||||||||||||||||||||
9 | ❅ | ❃ | ❀ | ✽ | ❅ | ✽ | |||||||||||||||||||||||||||||||||||||||||
10 | 11088 | ⭐ | topper 1 | ❃ | ❆ | ? | ? | ? | ? | ||||||||||||||||||||||||||||||||||||||
11 | 9618 | ▒ | topper 2 | ❃ | ❆ | ❅ | ✽ | ✽ | ❀ | ||||||||||||||||||||||||||||||||||||||
12 | 127873 | ? | base | ✽ | ? | ❂ | ✿ | ❂ | ❅ | ❀ | ❅ | ||||||||||||||||||||||||||||||||||||
13 | ❂ | ✽ | ❅ | ✾ | ❁ | ✾ | ❀ | ❆ | ✿ | ✾ | |||||||||||||||||||||||||||||||||||||
14 | Ornaments array values used by these trees in next post. | ? | ✾ | ✾ | ❀ | ❀ | ❆ | ❁ | ❆ | ❆ | ✿ | ||||||||||||||||||||||||||||||||||||
15 | Note: Ornaments shape, color, can look different on your spreadsheet. | ? | ? | ❅ | ❂ | ❀ | ❃ | ||||||||||||||||||||||||||||||||||||||||
16 | ✿ | ? | ❂ | ❂ | ❃ | ||||||||||||||||||||||||||||||||||||||||||
17 | ht,30,sh,4 | ❀ | ✾ | ❀ | ? | ❁ | ❅ | ❅ | |||||||||||||||||||||||||||||||||||||||
18 | =AXMAS(30,4,BH17:CU20) | ❃ | ? | ❃ | ❃ | ❃ | ✿ | ✽ | |||||||||||||||||||||||||||||||||||||||
19 | ⭐ | ht,20,sh,, | ❆ | ✾ | ? | ❃ | ✿ | ❀ | ❃ | ||||||||||||||||||||||||||||||||||||||
20 | ▒ | =AXMAS(20,,BH17:CU20) | ❂ | ✽ | ✽ | ❂ | ❅ | ❃ | ✿ | ||||||||||||||||||||||||||||||||||||||
21 | ⏬ | ⭐ | ? | ? | ? | ||||||||||||||||||||||||||||||||||||||||||
22 | ? | ▒ | |||||||||||||||||||||||||||||||||||||||||||||
23 | ? | ? | ? | ? | |||||||||||||||||||||||||||||||||||||||||||
24 | ? | ? | ? | ? | ? | ♕ | ornaments array as numbers | ||||||||||||||||||||||||||||||||||||||||
25 | ⏬ | ? | ? | ? | ✼ | ? | =AXMAS(13,4,SEQUENCE(9)) | ||||||||||||||||||||||||||||||||||||||||
26 | ? | ? | ? | ? | ? | ? | ⭐ | ||||||||||||||||||||||||||||||||||||||||
27 | ? | ? | ? | ❀ | ? | ? | ? | ? | ? | ? | ▒ | ||||||||||||||||||||||||||||||||||||
28 | ✷ | ? | ? | ? | ? | ? | ? | ? | ? | ? | 5 | ||||||||||||||||||||||||||||||||||||
29 | ? | ? | ? | ? | ? | ⚽ | ? | ? | ? | ? | 3 | ||||||||||||||||||||||||||||||||||||
30 | ❊ | ❇ | ? | ❉ | ? | ? | ? | ? | ? | ❄ | ? | ? | 6 | 4 | 1 | ||||||||||||||||||||||||||||||||
31 | ✻ | ? | ? | ? | ✅ | ? | ? | ? | ? | ⏪ | ? | ⭕ | ? | ? | 6 | 5 | 2 | ||||||||||||||||||||||||||||||
32 | ? | ? | ? | ⭕ | ? | ⚓ | ? | ? | ? | ✺ | ? | ? | ? | ✴ | 3 | 9 | 7 | ||||||||||||||||||||||||||||||
33 | ? | ? | ? | ? | ❌ | ? | ? | ? | ? | ? | ? | ❎ | ? | ? | ❄ | ? | 2 | 5 | 4 | ||||||||||||||||||||||||||||
34 | ? | ⏩ | ✼ | ? | ⭕ | ✴ | ? | ? | ? | ? | ❈ | ? | ? | ? | ? | ? | 4 | 6 | 9 | 4 | 4 | ||||||||||||||||||||||||||
35 | ? | ? | ? | ? | ? | ❇ | ? | ? | ? | ? | ⭕ | ✻ | ? | ❆ | ? | ✻ | ? | ? | 5 | 3 | 6 | 3 | 7 | ||||||||||||||||||||||||
36 | ✺ | ⏩ | ❂ | ? | ⛄ | ? | ? | ✺ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ⚡ | ⚡ | 5 | 3 | 2 | 3 | 9 | ||||||||||||||||||||||
37 | ? | ? | ? | ? | ? | ⚓ | ? | ? | ? | ❈ | ? | ? | ? | ? | ✿ | ? | ✾ | ? | ❂ | ? | 2 | 8 | 2 | 2 | 8 | ||||||||||||||||||||||
38 | ? | ? | ? | ✸ | ? | ? | ? | ✿ | ? | ? | ? | ? | ? | ❁ | ? | ? | ? | ❁ | ? | ? | 2 | 7 | 7 | 3 | 4 | 8 | 4 | ||||||||||||||||||||
39 | ? | ❉ | ? | ? | ? | ? | ? | ✿ | ? | ♕ | ❉ | ? | ? | ❎ | ? | ? | ✶ | ? | ? | ? | ⏩ | ? | ? | ❀ | 1 | 3 | 9 | 7 | 6 | 9 | 5 | ||||||||||||||||
40 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ✻ | ? | ? | ? | ? | ❂ | ? | ? | ? | ❉ | ? | ? | ❂ | 6 | 1 | 9 | 6 | 1 | 8 | 2 | ||||||||||||||||
41 | ? | ✼ | ? | ? | ❅ | ❈ | ? | ❃ | ✅ | ✅ | ? | ❆ | ✹ | ⚓ | ? | ? | ⭐ | ⏬ | ❊ | ? | ? | ? | ⚡ | ? | 6 | 2 | 1 | 4 | 9 | 8 | 3 | ||||||||||||||||
42 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ||||||||||||||||||||||||
43 | ? | ? | ? | ? | ✅ | ? | ? | ? | ⛄ | ? | ? | ? | ? | ||||||||||||||||||||||||||||||||||
44 | ? | ? | ? | ❄ | ? | ? | ❄ | ? | ✼ | ⏬ | ? | ? | ? | Note: This values can be used with CF | |||||||||||||||||||||||||||||||||
45 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ♔ | ❅ | ||||||||||||||||||||||||||||||||||
46 | ? | ? | ❊ | ? | ? | ? | ? | ? | ? | ? | ? | ❀ | ? | ||||||||||||||||||||||||||||||||||
47 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ⚡ | ||||||||||||||||||||||||||||||||
48 | ? | ? | ⚽ | ? | ? | ? | ? | ? | ? | ✾ | ? | ❊ | ? | ? | ? | ||||||||||||||||||||||||||||||||
49 | ? | ? | ✵ | ✵ | ? | ? | ? | ❊ | ? | ❃ | ? | ? | ? | ? | ? | ||||||||||||||||||||||||||||||||
50 | ? | ✶ | ? | ? | ✻ | ? | ? | ? | ? | ? | ❈ | ? | ? | ? | ? | ||||||||||||||||||||||||||||||||
51 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ||||||||||||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||||||||||||||||||||||
AXMAS 1 |
Cell Formulas | ||
---|---|---|
Range | Formula | |
AG4,AI25,T20,B18,Y5 | AG4 | =FORMULATEXT(AG5) |
AG5:AM21 | AG5 | =AXMAS(15,4,X2:AH2) |
Y6:AC15 | Y6 | =AXMAS(,,X2:AH2) |
B10:B12 | B10 | =UNICHAR(A10:A12) |
B19:P51 | B19 | =AXMAS(30,4,BH17:CU20) |
T21:AF42 | T21 | =AXMAS(20,,BH17:CU20) |
AI26:AO42 | AI26 | =AXMAS(13,4,SEQUENCE(9)) |
Dynamic array formulas. |
Upvote
0