Summary
When you use the Microsoft Excel products listed at the end of this article, you can use a worksheet formula to convert data that spans multiple rows and columns to a database format (columnar).
More Information
The following example converts every four rows of data in a column to four columns of data in a single row (similar to a database field and record layout). This example is similar to the scenario you experience when you open a worksheet or text file that contains data in a mailing label format.
Example
In a new worksheet, type the following data:
A1: Smith, John
A2: 111 Pine St.
A3: San Diego, CA
A4: (555) 128-549
A5: Jones, Sue
A6: 222 Oak Ln.
A7: New York, NY
A8: (555) 238-1845
A9: Anderson, Tom
A10: 333 Cherry Ave.
A11: Chicago, IL
A12: (555) 581-4914Type the following formula in cell C1:
=OFFSET($A$1,(ROW()-1)*4+INT((COLUMN()-3)),MOD(COLUMN()-3,1))Fill this formula across to column F, and then down to row 3.
Adjust the column sizes as necessary. The data now displays in cells C1 through F3 as follows:
C D E F 1 Smith, John 111 Pine St. San Diego, CA (555) 128-549 2 Jones, Sue 222 Oak Ln. New York, NY (555) 238-1845 3 Anderson, Tom 333 Cherry Ave. Chicago, IL (555) 581-4914
The formula can be interpreted as
OFFSET($A$1,(ROW()-f_row)*rows_in_set+INT((COLUMN()-f_col)/col_in_set), MOD(COLUMN()-f_col,col_in_set))
where:
- f_row = row number of this offset formula
- f_col = column number of this offset formula
- rows_in_set = number of rows that make one record of data
- col_in_set = number of columns of data