Grab Data and sort based on fields

So I have a database of about 1000+ names and other information of people. Now the way I got this info is that it is all vertically listed. Now I want to list the info in a column format without copying and transposing the info.

Example:

Cell A B C D

First Name: John

Last Name: Smith

Personal Details:
Hair Color: Brown

Eye Color: Brown

And its like this for the rest of the list.

Is there a way I can just tell Calc to just find all the first names and list them straight down or just copy and paste transposed on each row until it gets back to the first name field again?

Sorry about the formatting

Thanks guys

Thanks for the quick response Karolus. I guess I wasn’t clear but that just sorts the data out and not very well because it mixes up the blocks of data I have. I need to copy and transpose the data so it becomes a horizontal list.