Xlambda
Well-known Member
- Joined
- Mar 8, 2021
- Messages
- 860
- Office Version
- 365
- Platform
- Windows
ACOMB Array Combine . Extracts all combinations of columns values of an array. Is a simpler version of ACOMBINE (that takes its data from different columns of a bigger array, calculates the unique by column of that extraction and only after these steps, calculates all combinations).
MrExcel's latest video published yesterday: Excel All Combinations Using Power Query - 2424 determined me to write this version, (alternative of the cool PQ solution), simple, that does not call any other function, no use of the new functions. Probably I will address a study of all Combinatorics scenarios using lambdas.
MrExcel's latest video published yesterday: Excel All Combinations Using Power Query - 2424 determined me to write this version, (alternative of the cool PQ solution), simple, that does not call any other function, no use of the new functions. Probably I will address a study of all Combinatorics scenarios using lambdas.
Excel Formula:
=LAMBDA(ar,
LET(a,IF(ar="","",ar),r,ROWS(a),c,COLUMNS(a),s,SEQUENCE(,c),q,SEQUENCE(c)^0,
IF(OR(r=1,c=1),"check array",LET(x,MOD(ROUNDUP(SEQUENCE(r^c)/r^(c-s),0)-1,r)+1,y,INDEX(a,x,s),
UNIQUE(FILTER(y,NOT(MMULT(--(y=""),q))))))
)
)
LAMBDA 1.1.1.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 | if blanks | if 1 clm has dups | combining is by column, for dif.outcome we have to use transpose | ||||||||||||||||||||||||||||||||||||||||||||
2 | smpl 1 | =ACOMB(A3:C5) | smpl 2 | =ACOMB(I3:K6) | smpl 3 | =ACOMB(Q3:S6) | smpl 4 | =ACOMB(Y3:AC4) | =ACOMB(TRANSPOSE(Y3:AC4)) | ||||||||||||||||||||||||||||||||||||||
3 | A | 1 | X | A | 1 | X | A | 1 | X | A | 1 | X | A | 1 | X | A | 1 | X | A | B | C | D | E | A | B | C | D | E | A | 1 | |||||||||||||||||
4 | B | 2 | Y | A | 1 | Y | B | 2 | Y | A | 1 | Y | B | 2 | Y | A | 1 | Y | 1 | 2 | 3 | 4 | 5 | A | B | C | D | 5 | A | 2 | |||||||||||||||||
5 | C | 3 | Z | A | 1 | Z | C | Z | A | 1 | Z | A | Z | A | 1 | Z | A | B | C | 4 | E | A | 3 | ||||||||||||||||||||||||
6 | A | 2 | X | D | A | 2 | X | D | A | 2 | X | all comb 2^5 | A | B | C | 4 | 5 | A | 4 | ||||||||||||||||||||||||||||
7 | all comb 3^3 | A | 2 | Y | A | 2 | Y | A | 2 | Y | 32 | A | B | 3 | D | E | A | 5 | |||||||||||||||||||||||||||||
8 | 27 | A | 2 | Z | A | 2 | Z | A | 2 | Z | A | B | 3 | D | 5 | B | 1 | ||||||||||||||||||||||||||||||
9 | A | 3 | X | B | 1 | X | B | 1 | X | check | A | B | 3 | 4 | E | B | 2 | ||||||||||||||||||||||||||||||
10 | check | A | 3 | Y | B | 1 | Y | B | 1 | Y | =ROWS(AE3#) | A | B | 3 | 4 | 5 | B | 3 | |||||||||||||||||||||||||||||
11 | =ROWS(E3#) | A | 3 | Z | B | 1 | Z | B | 1 | Z | 32 | A | 2 | C | D | E | B | 4 | |||||||||||||||||||||||||||||
12 | 27 | B | 1 | X | B | 2 | X | B | 2 | X | A | 2 | C | D | 5 | B | 5 | ||||||||||||||||||||||||||||||
13 | B | 1 | Y | B | 2 | Y | B | 2 | Y | A | 2 | C | 4 | E | C | 1 | |||||||||||||||||||||||||||||||
14 | B | 1 | Z | B | 2 | Z | B | 2 | Z | A | 2 | C | 4 | 5 | C | 2 | |||||||||||||||||||||||||||||||
15 | B | 2 | X | C | 1 | X | D | 1 | X | A | 2 | 3 | D | E | C | 3 | |||||||||||||||||||||||||||||||
16 | B | 2 | Y | C | 1 | Y | D | 1 | Y | A | 2 | 3 | D | 5 | C | 4 | |||||||||||||||||||||||||||||||
17 | B | 2 | Z | C | 1 | Z | D | 1 | Z | A | 2 | 3 | 4 | E | C | 5 | |||||||||||||||||||||||||||||||
18 | B | 3 | X | C | 2 | X | D | 2 | X | A | 2 | 3 | 4 | 5 | D | 1 | |||||||||||||||||||||||||||||||
19 | B | 3 | Y | C | 2 | Y | D | 2 | Y | 1 | B | C | D | E | D | 2 | |||||||||||||||||||||||||||||||
20 | B | 3 | Z | C | 2 | Z | D | 2 | Z | 1 | B | C | D | 5 | D | 3 | |||||||||||||||||||||||||||||||
21 | C | 1 | X | D | 1 | X | 1 | B | C | 4 | E | D | 4 | ||||||||||||||||||||||||||||||||||
22 | C | 1 | Y | D | 1 | Y | 1 | B | C | 4 | 5 | D | 5 | ||||||||||||||||||||||||||||||||||
23 | C | 1 | Z | D | 1 | Z | 1 | B | 3 | D | E | E | 1 | ||||||||||||||||||||||||||||||||||
24 | C | 2 | X | D | 2 | X | 1 | B | 3 | D | 5 | E | 2 | ||||||||||||||||||||||||||||||||||
25 | C | 2 | Y | D | 2 | Y | 1 | B | 3 | 4 | E | E | 3 | ||||||||||||||||||||||||||||||||||
26 | C | 2 | Z | D | 2 | Z | 1 | B | 3 | 4 | 5 | E | 4 | ||||||||||||||||||||||||||||||||||
27 | C | 3 | X | 1 | 2 | C | D | E | E | 5 | |||||||||||||||||||||||||||||||||||||
28 | C | 3 | Y | 1 | 2 | C | D | 5 | |||||||||||||||||||||||||||||||||||||||
29 | C | 3 | Z | 1 | 2 | C | 4 | E | |||||||||||||||||||||||||||||||||||||||
30 | 1 | 2 | C | 4 | 5 | ||||||||||||||||||||||||||||||||||||||||||
31 | 1 | 2 | 3 | D | E | ||||||||||||||||||||||||||||||||||||||||||
32 | 1 | 2 | 3 | D | 5 | ||||||||||||||||||||||||||||||||||||||||||
33 | 1 | 2 | 3 | 4 | E | ||||||||||||||||||||||||||||||||||||||||||
34 | 1 | 2 | 3 | 4 | 5 | ||||||||||||||||||||||||||||||||||||||||||
35 | |||||||||||||||||||||||||||||||||||||||||||||||
ACOMB post |
Cell Formulas | ||
---|---|---|
Range | Formula | |
E2,A11,Y10,AK2,AE2,U2,M2 | E2 | =FORMULATEXT(E3) |
E3:G29 | E3 | =ACOMB(A3:C5) |
M3:O26,U3:W20 | M3 | =ACOMB(I3:K6) |
AE3:AI34 | AE3 | =ACOMB(Y3:AC4) |
AK3:AL27 | AK3 | =ACOMB(TRANSPOSE(Y3:AC4)) |
Y7 | Y7 | =2^5 |
A8 | A8 | =3^3 |
Y11 | Y11 | =ROWS(AE3#) |
A12 | A12 | =ROWS(E3#) |
Dynamic array formulas. |
Upvote
1