I have an Excel table with just one column, with 1150 records, each of them a species name. I also have a shapefile with 24,000 records, each of them a species name and its geographic range. I need to clip out of the shapefile the 1150 records in my Excel table.

I thought I could just use ModelBuilder’s convenient row iterator to do this, but while the row iterator works fine the clip tool will not accept the result as the clip feature input. I am now trying to convert my Excel xlsx file into a shapefile, but since it doesn't have any geographic locations, it's just a list of names, this seems to be impossible.


What you want to do is not a clip, a clip operation would mean you are removing geometry from a layer using another layer as the clipping boundary. You want to do a Join. To do it in ArcGIS, which I assume you're using because you mention modelbuilder:

  • Add the shapefile to your project.
  • Right-click the layer's name, click Joins and Relates > Join...
  • Choose "Join attributes from a table" in the dropdown box.
  • In box 1, choose the field in your shapefile that contains the species name.
  • In box 2, navigate to the sheet in your Excel table that has the 1150 records.
  • In box 3, choose the field in your Excel table containing the species names.
  • Under Join Options, choose "Keep only matching records".
  • Click OK.

Your shapefile should now only show the 1150 records you want. The shapefile hasn't actually been altered though, so if you want to save that layer for future use you should export it to a new shapefile.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.