I have a data set as follows:

```
A       |   B       |  C      |...
1abc    |   1def    |  1ghi   |...
2abc    |   2def    |  2ghi   |...
...

```

This is a collection of memo notes for each account in our database. The 1 in "1abc" represents the account ID and the letters represent some text. There are a total of 177 columns and 1866 rows but not every row has values up to column 177, some may only have two columns worth of data. 

I need each column to drop down to the bottom of column A so that all data only occupies Column A. For example, all the data in column B would inserted after the last value in A. Data in column C would be inserted after the last value in column A after it's been populated with the data from B and so on. 

In the end, it should look something like this (from which point I can simply sort it in ascending order). 

```
A       |   B       |  C      |
1abc    |           |         |
2abc    |           |         |
...
1def    |           |         |
2def    |           |         |
...
1ghi    |           |         |
2ghi    |           |         |
...

```

Can anyone help out with this? I am assuming that I need a macro and have tried working with the solution found [in this post](https://stackoverflow.com/questions/18883725/in-excel-vba-create-new-rows-based-on-column-data) but couldn't figure it out. Oh, and I'm using Excel 2003 if that helps.