I am trying to create an automatically generated list with every possible combination.
This is the current formula I am using:
=INDEX(SPLIT(TOCOL(TOCOL(TOCOL(TOCOL(TOCOL(
TOCOL(H2:H10, 1) &"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(I2:I4, 1))&"×"&
TOROW(J2:J3, 1)),"×"))
However, this creates duplicate groupings of the fruits. These are all the same but presented in a different order:
I would like just one instance of 3 apples and a banana. How do I go about to fix this?
Try this Google Sheets formula. It is based on the OP.
=INDEX(SPLIT(TOCOL(TOCOL(TOCOL(
TOROW(SORT(UNIQUE(BYROW(BYROW(INDEX(SPLIT(TOCOL(TOCOL(TOCOL(
TOCOL(H2:H10, 1) &"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1)),"×")),LAMBDA(ROW,transpose(sort(Transpose(ROW),1,true)))),LAMBDA(ROW,join("×",ROW)))),1,true), 1))&"×"&
TOROW(I2:I4, 1))&"×"&
TOROW(J2:J3, 1)),"×"))
This formula creates a data list of 2970 rows, compared to the 39366 rows (including duplicates) generated by the original formula in the question.
Logic
The formula consists of several stages:
INDEX(SPLIT(TOCOL(TOCOL(TOCOL(
TOCOL(H2:H10, 1) &"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1)),"×"))
BYROW(INDEX(SPLIT(TOCOL(TOCOL(TOCOL(
TOCOL(H2:H10, 1) &"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1)),"×")),LAMBDA(ROW,transpose(sort(Transpose(row),1,true))))
Converts this extract:
Fruit1 | Fruit2 | Fruit3 | Fruit4 |
---|---|---|---|
Apple | Apple | Apple | Banana |
Apple | Apple | Banana | Apple |
to this:
Fruit 1 | Fruit 2 | Fruit 3 | Fruit 4 |
---|---|---|---|
Apple | Apple | Apple | Banana |
Apple | Apple | Apple | Banana |
BYROW(BYROW(INDEX(SPLIT(TOCOL(TOCOL(TOCOL(
TOCOL(H2:H10, 1) &"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1)),"×")),LAMBDA(ROW,transpose(sort(Transpose(row),1,true)))),LAMBDA(ROW,join("×",ROW)))
Sample outcome
Joined data |
---|
Apple×Apple×Apple×Banana |
Apple×Apple×Apple×Banana |
The number of unique combinations = 495 (compared to 6561-including duplicates).
sort(unique(BYROW(BYROW(INDEX(SPLIT(TOCOL(TOCOL(TOCOL(
TOCOL(H2:H10, 1) &"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1)),"×")),LAMBDA(ROW,transpose(sort(Transpose(row),1,true)))),LAMBDA(ROW,join("×",ROW)))),1,true)
Sorted unique values |
---|
Apple×Apple×Apple×Apple |
Apple×Apple×Apple×Banana |
Apple×Apple×Apple×Blueberry |
Apple×Apple×Apple×Grape |
Apple×Apple×Apple×Lemon |
Apple×Apple×Apple×Melon |
Apple×Apple×Apple×Necatarine |
Apple×Apple×Apple×Orange |
Apple×Apple×Apple×Pear |
Apple×Apple×Banana×Banana |
Apple×Apple×Banana×Blueberry |
Apple×Apple×Banana×Grape |
Apple×Apple×Banana×Lemon |
Apple×Apple×Banana×Melon |
Apple×Apple×Banana×Necatarine |
Apple×Apple×Banana×Orange |
Apple×Apple×Banana×Pear |
index(split(sort(unique(BYROW(BYROW(INDEX(SPLIT(TOCOL(TOCOL(TOCOL(
TOCOL(H2:H10, 1) &"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1))&"×"&
TOROW(H2:H10, 1)),"×")),LAMBDA(ROW,transpose(sort(Transpose(row),1,true)))),LAMBDA(ROW,join("×",ROW)))),1,true),"×"))
Fruit 1 | Fruit 2 | Fruit 3 | Fruit 4 |
---|---|---|---|
Apple | Apple | Apple | Apple |
Apple | Apple | Apple | Banana |
Apple | Apple | Apple | Blueberry |
Apple | Apple | Apple | Grape |
Apple | Apple | Apple | Lemon |
Apple | Apple | Apple | Melon |
Apple | Apple | Apple | Necatarine |
Apple | Apple | Apple | Orange |
Apple | Apple | Apple | Pear |
Apple | Apple | Banana | Banana |
Apple | Apple | Banana | Blueberry |
Apple | Apple | Banana | Grape |
Apple | Apple | Banana | Lemon |
Apple | Apple | Banana | Melon |
Apple | Apple | Banana | Necatarine |
Apple | Apple | Banana | Orange |
Apple | Apple | Banana | Pear |
Sample extract
Fruit 1 | Fruit 2 | Fruit 3 | Fruit 4 | M1 | N1 |
---|---|---|---|---|---|
Apple | Apple | Apple | Apple | A | X |
Apple | Apple | Apple | Apple | A | Y |
Apple | Apple | Apple | Apple | B | X |
Apple | Apple | Apple | Apple | B | Y |
Apple | Apple | Apple | Apple | C | X |
Apple | Apple | Apple | Apple | C | Y |
Apple | Apple | Apple | Banana | A | X |
Apple | Apple | Apple | Banana | A | Y |
Apple | Apple | Apple | Banana | B | X |
Apple | Apple | Apple | Banana | B | Y |
Apple | Apple | Apple | Banana | C | X |
Apple | Apple | Apple | Banana | C | Y |
Apple | Apple | Apple | Blueberry | A | X |
Apple | Apple | Apple | Blueberry | A | Y |
Apple | Apple | Apple | Blueberry | B | X |
Apple | Apple | Apple | Blueberry | B | Y |
Apple | Apple | Apple | Blueberry | C | X |
Apple | Apple | Apple | Blueberry | C | Y |