Home » excel » excel – Create Multiple Rows Based on Columns

excel – Create Multiple Rows Based on Columns

Posted by: admin May 14, 2020 Leave a comment


I need help.

I have an Excel file w/ the approximate following column structure:

  • Organization
  • Program Name
  • 2012 (Year)
  • 2013 (Year)
  • 2014 (Year)

In this initial construct each row is it’s own Program Name (i.e., there is only one row for each program). Each budget year has its own column where budget data for a given year is entered.

I need to replace the individual year columns with a single YEAR column:

  • Organization
  • Program Name
  • YEAR

In this setup, there would be separate row for each of Program budget – so each program would have multiple rows for each year.

I have 3,000 lines in the original construct that I need to switch to the new format in order to feed my data visualization tool – otherwise it will not recognize each column as a single dimension (year).


How to&Answers:

If I understand this right, you have:

enter image description here

and you want

enter image description here

Here is really rough but tested VBA code to get you started. I am not sure if you have had experience with VBA.

    Sub xxx()


    Dim x As Integer
    x = 2

    For a = 2 To 3000

        org = Range("A" & a).Value
        prog = Range("B" & a).Value
        y1 = Range("C" & a).Value
        y2 = Range("D" & a).Value
        y3 = Range("E" & a).Value


        Range("A" & x).Value = org
        Range("B" & x).Value = prog
        Range("C" & x).Value = y1
        Range("C" & x + 1).Value = y2
        Range("C" & x + 2).Value = y3

        x = x + 3

    Next a

End Sub

Let me know if you need more explanation or better code.