google-sheetsgoogle-sheets-formulaformula

Convert each name and corresponding data into separate columns


I have this data in google sheets and the name can be more or less based on the data I want to convert it into separate column.

Name Note
Josh anything1
Mike anything2
Peter anything3
Nicole anything4
Josh anything5
Mike anything6
Peter anything7
Nicole anything8
Josh anything9
Mike anything10
Peter anything11
Nicole anything12
Josh anything13
Mike anything14
Peter anything15
Nicole anything16
Josh anything17
Mike anything18
Peter anything19
Nicole anything20
Josh anything21
Mike anything22
Peter anything23
Nicole anything24
Josh anything25
Mike anything26
Peter anything27
Nicole anything28
Peter anything29
Nicole anything30
Peter anything31
Nicole anything32
Peter anything33
Nicole anything34
Peter anything35
Nicole anything36

This will be the last result.

Name Note Name Note Name Note Name Note
Josh anything1 Mike anything2 Peter anything3 Nicole anything4
Josh anything5 Mike anything6 Peter anything7 Nicole anything8
Josh anything9 Mike anything10 Peter anything11 Nicole anything12
Josh anything13 Mike anything14 Peter anything15 Nicole anything16
Josh anything17 Mike anything18 Peter anything19 Nicole anything20
Josh anything21 Mike anything22 Peter anything23 Nicole anything24
Josh anything25 Mike anything26 Peter anything27 Nicole anything28
Peter anything29 Nicole anything30
Peter anything31 Nicole anything32
Peter anything33 Nicole anything34
Peter anything35 Nicole anything36

Your help will be much appreciated.

I tried using the 4 filter function but its result was not dynamic first I define the name then filter function come with result.


Solution

  • Using Filter Dynamically and Stack it

    Your Filter approach is correct, dynamically running through it you use iterators of Google Sheets like Reduce like what I have used. Add a Choosecols to remove the additional array added on by the Reduce function. Sequence is just for generating the number of columns that was supposed to be in the array.

    Try this approach

    =CHOOSECOLS(REDUCE(,UNIQUE(A2:A), LAMBDA(a,c, IFNA(HSTACK(a,FILTER(A2:B, A2:A = c)),""))), SEQUENCE(1, COUNTA(UNIQUE(A2:A))*2, 2, 1))
    

    Result:

    Josh anything1 Mike anything2 Peter anything3 Nicole anything4
    Josh anything5 Mike anything6 Peter anything7 Nicole anything8
    Josh anything9 Mike anything10 Peter anything11 Nicole anything12
    Josh anything13 Mike anything14 Peter anything15 Nicole anything16
    Josh anything17 Mike anything18 Peter anything19 Nicole anything20
    Josh anything21 Mike anything22 Peter anything23 Nicole anything24
    Josh anything25 Mike anything26 Peter anything27 Nicole anything28
    Peter anything29 Nicole anything30
    Peter anything31 Nicole anything32
    Peter anything33 Nicole anything34
    Peter anything35 Nicole anything36

    Reference:

    Reduce Function