Just tried something that *may* work for you: pivot tables.
On your sample spreadsheet, I did the following:
* Select all the data, header row included.
* Select "Data | Pivot Table | Create".
* With "Current selection" selected, click "OK".
* Drag "member type" and "email" to "Row Fields".
* Click "OK".
A new sheet is created with the pivot table, which has the data sorted
by member type, with all the email addresses listed per type.
Note that if data is added, it won't automatically show up in the pivot
table. You can right-click in the pivot table and select "Edit Layout",
then click "More" and change the "Selection from" value to include the
new rows of data. If you set the last row to be beyond the end of the
current data, you will get a new "member type" in the pivot table
called "(empty)", but any data now added in empty rows that are still
within the pivot table selection will show up if you right-click on the
pivot table and select "Refresh".
This isn't really what pivot tables are for, and may not suit your
needs, but given what you've described of your needs, this may be a
sufficient workaround.
You haven't really given us a proper explanation of what you are trying
to do, so it's hard to guess what might suit your needs best, but it
does sound like a database would be the best solution here, or perhaps
user defined functions (i.e. coded macros) in Calc. Short of that,
I think that you'll probably need to manually maintain a list of
email addresses per member type, either in a separate file, or still
manually in your columns as per the example file. Even using a pivot
table, you'll have to either adjust the selection when data is added,
or make the selection bigger than the data and just refresh when data
is added, and hope the data doesn't go beyond the end of the selection,
in which case you'll still need to adjust the selection.
Maybe if you give us more details we can come up with better
suggestions.
Hope this helped.
Paul