Xlambda
Well-known Member
- Joined
- Mar 8, 2021
- Messages
- 837
- 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