Is it possible to convert data found in Sheet #1 to the format found in Sheet #2
Sheet1 - Current dataset.
| # | A | B | C | D | E | F | G | H | I |
|---|---|---|---|---|---|---|---|---|---|
| 1 | - | Employee ID | Class ID | ||||||
| 2 | - | 555555 | - | - | - | - | - | - | Class004 |
| 3 | - | 888888 | - | - | - | - | - | - | Class004 |
| 4 | - | 777777 | - | - | - | - | - | - | Class004 |
| 5 | - | 333333 | - | - | - | - | - | - | Class004 |
| 6 | - | 666666 | - | - | - | - | - | - | Class002 |
| 7 | - | 111111 | - | - | - | - | - | - | Class002 |
| 8 | - | 222222 | - | - | - | - | - | - | Class002 |
| 9 | - | 222222 | - | - | - | - | - | - | Class009 |
Sheet2 - Expected Outcome using formulas.
| # | A | B | C |
|---|---|---|---|
| 1 | - | Class ID | Employee ID's |
| 2 | - | Class004 | 555555 888888 777777 333333 |
| 3 | - | Class002 | 666666 111111 222222 |
| 4 | - | Class009 | 222222 |
Column B contains a unique class ID for each row.
A class ID may have 4-20 characters, it may look like: "Class001", "CID001", "V001", or something else (because whoever created this data could not decide on a unified format lol)
Currently I am using this formula. Is there a better formula?
=UNIQUE(Sheet1!I2:I)placed inSheet2!B2.
Column C contains all the employee ID's in a single row (separated by a space) who participated in that particular class.
- Some employees have participated in multiple classes (example Employee 222222 was in Class002 and Class009) so the same Employee ID can be found in multiple rows.
- I tried using
=ARRAYFORMULA(VLOOKUP(Sheet2!B2:B,Sheet1!{I2:I,B2:B},2,0))inSheet2!C2but this will only return the first match. Perhaps there is a way to use vlookup to return an array of all Employee ID's matching the Class ID#, transpose them, then concat them? What do you suggest?
Thanks for your help! :)
CodePudding user response:
Try:
=JOIN(" ",FILTER(Sheet1!B:B,Sheet1!I:I=B2))
Then drag it down for the other Classes
