Sub Get_PData()
Dim inarr()
Dim rng As Range
'Optimize Macro Speed
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Worksheets("Data").Activate
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
lastcol = Cells(1, Columns.Count).End(xlToLeft).Column
inarr = Range("A1").CurrentRegion
Dim outarr(1 To 10000, 1 To 3)
n = 0
For i = 2 To UBound(inarr, 1)
pRef = inarr(i, 1)
For j = 20 To 91
If inarr(i, j) <> 0 Then
n = n + 1
outarr(n, 1) = pRef
outarr(n, 2) = inarr(1, j)
outarr(n, 3) = inarr(i, j)
End If
Next j
Next i
Set Destination = Worksheets("Goal").Range("A2")
Destination.Resize(UBound(outarr, 1), UBound(outarr, 2)).Value = outarr
'Reset Macro Optimization Settings
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
See sheet "Goal"
Bookmarks