Maybe you can use a dummy data source with all companies and use it as the main data source...
You asked: "Is it possible to filter data from the secondary data source?" Unfortunately right now, the answer is not really, as you found out.
What if, instead of using the list of all sales reps and the companies they've signed (your Excel sheet) as the Primary data source, you combine it into your original (SQL) data source?
For example, if your orignal (SQL) source was:
SALESREP / COMPANY / DATE / SALES
You'd put that Excel sheet info into a table in your database (called "CompanyList"), and create a union to that table, like:
Select SALESREP, COMPANY, '' as DATE, '' as SALES
As long as you are careful counting records (don't count null values), this should work, if it's possible to add a table to your database. Would this work?
As Catherine said, you cannot actually use the data fields from one source to filter another source.
However, you can get around this by using a parameter field. You can create a string parameter and use the your list of companies from Excel to populate it. The down-side is that as your Excel list is updated, you cannot force the parameter selection options to dynamically update to reflect new additions (or removals).
You can then create a calculated field to use in the filter shelf:
IF [Company] = [ParameterCompany] THEN 'Show' ELSE 'Hide' END
The better way would be to merge the desired information into your original data source in the SQL as Catherine suggested, but I know it is not always possible to create your own tables in your database environment... I **** heads with our DBAs as well. =)