To the first: You have what's referred to as a "many to many" join. Each species can appear in multiple subRegions, and each subRegion can have multiple species. The typical way to implement a many to many is to use a join table, where each record represents the unique combination of parent records (in this case, species and subRegion). You would minimally include the key fields from the two parent tables.
Then, you can attach different species to their regions by creating a record in the join table. Delete the record to break the tie.
To your second question:
Also, i have the data structure in that, when exported to excel, the column headers are the region, the first row is the species ID with the main body with "1" or blanks if the boolean is true or not.
Regardless, you can create a separate field that calculates to "1" if the condition is true, or "" if it is (or vice versa, depending on the need).