If lookup field is blank enter text


I have a table with a lookup field called Contact that looks up to the Contact object and the table is associated with a custom object to store the returned data.   This  works fine except sometimes the contact does not exist so no data is returned.  Is there way to manually enter the contact information and have it saved to the custom object without having different fields for the manually entered text data (as opposed to the lookup data).   So if I add a row to my contact table and the lookup finds a contact, pull required fields from the Contact object to the new row and have that be editable.   If no contact exists in the Contact object, just allow the user manually enter the data as text and save to the new custom object.