the non-exact nature of your data makes this complicated....
you can write a vba script to transpose each dataset (employee and data) to automatically convert each set to a row, loop it, then sort the row to end up with this
[employee 1] year=2000 average_score=1.27 hire date=0 1 class=1 time left=0 model=262 name= pc data=0.91
[employee 3] year=2000 score_curve=0.533 average_score=1.5 hire date=26 33 faction=21 class=24 curve=3 ddt=1024 time left=0 name= ave score=0 pc data=1.09 type=6
[employee 6] year=2000 score_curve=0.462 average_score=0.87 hire date=2 2 class=1 curve=6 ddt=104 time left=0 name= ave score=0 size=0.700000 pc data=0.92 type=7
-----------------------------------------------------------------------------------------------------------
the code without the loop looks like this
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ActiveCell.Offset(0, -1).Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Selection.End(xlDown).Select
took about 2 seconds to run through several hundred employees as I tested it.
Transpose is a function of excel--it is built in....you often access it by selecting text, copying, then pasting special, and selecting TRANSPOSE
You could expand the vba code to remove the undesirable field names (average_score, etc), leaving you with just the data/number, whatever.
Because your data alters from person to person, though, that would be a little dicey as the vba code cannot account for variations....