The Problem
I am trying to find a way to simplify data in multiple columns. Some columns have duplicate COLOUR values with a unique ID and a corresponding QTY. The ideal result would be a concatenated ID (based on duplicates), a sum of the QTY (based on duplicates) and consolidation of COLOUR (removing duplicates). Everything I have found so far doesn't quite fit the scenario and the expected outcome in the table below. Whatever the solution may be, there will be hundreds of unique entries in the ID column and COLOUR column so the solution must take that into consideration. Any help would be appreciated.
Sample Data
| ID | COLOUR | QTY |
|---|---|---|
| A1 | BLUE | 1 |
| B1 | GREEN | 2 |
| A2 | BLUE | 1 |
| A3 | BLUE | 1 |
| B2 | GREEN | 1 |
Expected Outcome
| ID | COLOUR | QTY |
|---|---|---|
| A1, A2, A3 | BLUE | 3 |
| B1, B2 | GREEN | 3 |
CodePudding user response:
So, assuming you are using MS365 then you may try using the formula as shown below,
• Formula used in cell E2
=LET(U,UNIQUE(B2:B6),CHOOSE({1,2,3},
BYROW(U,LAMBDA(a,TEXTJOIN(",",,FILTER(A2:A6,a=B2:B6,"")))),
U,BYROW(U,LAMBDA(a,SUM(FILTER(C2:C6,a=B2:B6,""))))))
Also when writing this formula, if you are on MS365 and have enabled the Beta Channel then using VSTACK() & HSTACK()
• Formula used in cell I1
=LET(U,UNIQUE(B2:B6),VSTACK(A1:C1,HSTACK(
BYROW(U,LAMBDA(a,TEXTJOIN(",",,FILTER(A2:A6,a=B2:B6,"")))),
U,BYROW(U,LAMBDA(a,SUM(FILTER(C2:C6,a=B2:B6,"")))))))
• Formula used in cell E2
=LET(X,UNIQUE(B2:B6),CHOOSE({1,2,3},BYROW(X,LAMBDA(a,
TEXTJOIN(", ",,FILTER(A2:A6,B2:B6=a)))),X,SUMIF(B2:B6,X,C2:C6)))



