Assuming that the data is laid out in the way presented in the "before" image you can use formulas to fill in the missing information and then remove duplicates.
First insert a new column "ID" as column A that has a unique identifier, hopefully First/Last Name concatenated will suffice:
=CONCATENATE(A2,"|",B2)
Autofill that down for every row.
Next use a formula to fill in missing information:
=IF(LEFT(C2,1)="", VLOOKUP(A2, A:C, 3, FALSE),C2)
This formula checks if the first character from the left in the cell matches nothing, basically that the cell is blank, and if so does a vlookup on the "ID" column, finding the first match of "John|Doe" it returns the phone number, otherwise it just leaves the value in there that it currently has.
If you drag this across and modify the vlookup for the other columns, eg email would be
=IF(LEFT(D2,1)="", VLOOKUP(A2, A:D, 4, FALSE),D2)
then remove all duplicate records you will be left with the "after" image you want.