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 model builder'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.

Any advice would be greatly appreciated!

  • Are you familiar with database joins? – whuber Jan 23 '14 at 20:30
  • What GIS software and version are you using? – PolyGeo Jan 23 '14 at 20:30
  • I'm using ArcGIS10.1 – user26142 Jan 23 '14 at 20:34
  • I've done database joins before, but only a few times. I was under the impression that the fields had to match exactly – user26142 Jan 23 '14 at 20:34

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.

  • Oh Thank You! That worked perfectly. I always thought to do a join you had to have equal number of records. This is going to make my life so much easier! Thanks again! – user26142 Jan 23 '14 at 20:38
  • 2
    Sure, if that solved your problem, please go ahead and click the little check mark to the left, that marks this as the "Accepted" answer to your question. – Dan C Jan 23 '14 at 20:45
  • 1
    @DanC, the OP may not have seen your suggestion to mark your answer as "Accepted" as you didn't tag their username with the "@" syntax. – user2856 Jan 23 '14 at 23:41

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.