Search code examples
excelformulaoffsetexcel-indirect

Trying to create 2 columns out of 1 column of data using offset and indirect


Need to take 1 column of data and create 2 columns for maximizing the amount of data on each sheet.

Ive been working with offset and indirect formulas but not getting the expected results. Below are just a few examples of what ive tried and worked with and tried changing to get what i think i should be getting.

=IF(OFFSET(Sheet1!$A$1,(COLUMN()-1)*10+ROW()-1,0)="","",OFFSET(Sheet1!$A$1,(COLUMN()-1)*310+ROW()-1,0))

=OFFSET($A$1,ROW()*1-2+COLUMN(),0)&""

=INDIRECT("a"&ROW()*1-(2-COLUMN()))

So we have a need to create a excel template as dynamic as possible with as little printed pages as we can. Because the number of rows is unknown, we want to build the template in a fashion that allows for as little or as much data as we receive and need printed. So we have a need to fit 2 column sets per page, each set containing 10 rows each so we can have a total of 20 sets per page.

After finding offset and indirect, i started to work with that and see if i can create a formulas that would give me what we need..

What we are trying to see by using these formulas(if they are the correct ones to use) is the following:

Say we have 25 rows in our datasheet. We would like to see the following on our template.

Page 1

1     11

2     12

3     13

4     14

5     15

6     16

7     17

8     18

9     19

10    20


Page 2

21

22

23

24

25

Solution

  • Do not use INDIRECT and OFFSET if possible (And I have only found rare times they are needed) as they are volatile functions. Index is the best option:

    Page1 put this in the first cell, copy over one and down ten:

    =INDEX(Sheet1!$A:$A,Row(1:1)+((column(A:A)-1)*10))
    

    In each sequential sheet add a factor of 20:

    =INDEX(Sheet1!$A:$A,Row(1:1)+((column(A:A)-1)*10)+(20*1))
    

    Change the *1 to *2 for the third and so on.