I have two columns in a google sheets tab, a group column and an item column. Each entry in the item column is unique and only occurs in one group.
GROUP | ITEM |
---|---|
A | X |
A | Y |
A | Z |
B | I |
B | J |
B | K |
C | P |
C | Q |
C | R |
I would like in a new sheet to create a single column that has Group A followed by all items in that group, then an empty row, and then Group B and its items. With this patterned continued for all groups. The formula should automatically update to include any new groups or items that are added in the original sheet.
OUTPUT |
---|
A |
X |
Y |
Z |
B |
I |
J |
K |
C |
P |
Q |
R |
I've searched around and haven't found any similar questions on stack overflow or elsewhere. ChatGPT and Gemini provided some suggestions using ARRAYFORMULA for example:
=ARRAYFORMULA(IF(A2:A<>"", A2:A&" | "&TEXTJOIN(", ",TRUE,FILTER(B2:B, A2:A=A2:A)), ""))
but the outputs aren't what I require.
You may use FILTER
to group the items based on the group code. Afterwards, use a combination of TOCOL
and TOROW
to transform the array to your desired format. The formula should look like this:
=LET(a, UNIQUE(TOCOL(A2:A,1)),
TOCOL(BYROW(a,LAMBDA(x,TOROW({x;filter(B2:B,A2:A=x);" "}))),1))
A |
X |
Y |
Z |
B |
I |
J |
K |
C |
P |
Q |
R |
NOTE: Setting the Group Code (A,B,C in the sample data) to STRONG
/ BOLD
format can only be done manually.