Forum Discussion

Drew-N's avatar
Drew-N
Copper Contributor
Jul 06, 2024

Seeking Tables help

Looking for help on tables. I have a long list (140+) of names. I'm trying to set up to have 2 columns of limited rows, (so it shows at 2 tables on a printed page) but want to have it so that if I add a name in the middle of a data set, it'll move everything below it down 1, and across other tables.

Example, when I go to print, Column 1 on page 1 has names A-C, column 2 has D-F. column 1 on page 3 has g-p. If I need to add a name in A-C, it'll push the list down one, going into D-F and G-P, etc.

I hope that sort of explains what I'm looking for...

3 Replies

  • Drew-N

    I'd enter the data in one long column, inserting or deleting names as needed. Say you enter them in column A, from A2 down on a sheet named Data Sheet.

    On another sheet, display the names in columns of 30 cells (or less in the last column) to be printed.

    Enter the following formula in a cell on that sheet:

     

    =WRAPCOLS(FILTER('Data Sheet'!A2:A500, 'Data Sheet'!A2:A500<>""), 30, "")

     

    Adjust the column widths so that 2 columns will be printed on a page.

     

    • Drew-N's avatar
      Drew-N
      Copper Contributor

      HansVogelaar That mostly worked, thanks! But one more if you can... The tables in mind are two parts. So one has a name, the other has a number. Could it be worked to have those two columns stay side by side?

      Column1 Column2 (split) Column1Column2

       

      Such as:

      Smith | 1         Phillip | 5
      Rosero | 2       Omar | 2

      Ramirez | 6

      is there a code to keep 6 with Ramirez as it shifts around on the displayed table? It would be edited on Data Sheet.

      • Drew-N

        A lot clunkier. Let's say you want 30 rows per column, and you start in A2.

        Enter the following formula in A2:

         

        =LET(data, 'Data Sheet'!$A$2:$B$500, numrows, 30, firstcell, $A$2, v, INDEX(data, ROW()-ROW(firstcell)+1+numrows/2*(COLUMN()-COLUMN(firstcell)-ISODD(COLUMN()-COLUMN(firstcell))), ISODD(COLUMN()-COLUMN(firstcell))+1), w, IFERROR(v, ""), IF(w="", "", w))

         

        Fill down to 30 rows, then fill to the right

Resources