How can I import Memberships without e-mail addresses or external IDs?
Here's an idea: 


Import contacts (as you have already done)
Export the contacts you just imported, selecting the at least the following fields: contact ID, first name, last name
Use spreadsheet formulas to match the ID up like this:


Add a new sheet in your memberships spreadsheet
Paste in the exported data
Add a new column to the left (can't be right) of your exported data, and call this column "name". 
Create and fill a formula for the name column to concatenate the first and last name (e.g. =C2&amp;" "&amp;D2 will concatenate the contents of cells C2 and D2, with a space in between.) 
In your memberships sheet, create a new column called id, and create a formula like =VLOOKUP(A2,Sheet2.A$2:D$10000,2,0). 


A2 is for the column in your memberships sheet that contains the full name. If you have two columns, then you'd want to write something like C2&amp;" "&amp;D2, as we did before. 
Sheet2.A$2:D$10000 is an absolute reference (dollar signs so it won't change when formula is filled downwards) to the range containing all the ID reference data. I wrote 10000, but make sure you use a number large enough to encompass the whole data set. Note that Sheet2 is the name of the sheet. 
2 is to say that the value you want to pull into your memberships sheet is the second column from the left in your ID data. 
0 is to say that you want the VLOOKUP function to give you "#NA" if it can't find a match instead of the (terribly chosen) default behavior of picking the nearest match. 

Export memberships spreadsheet to CSV, and then try importing into Civi using the ID values that you pulled in



(These formulas should be correct for LibreOffice, but may need to tweaking for MS Office, with which I'm less familiar.)