What I think you should do is transform the data in the script:
load Record, subfield(ProductList,';') as Product
Replace Record and ProductList with the real names of the fields from your source table.
The load script above will split the Products list and create a record for each value. The result will be a table that looks like:
Record Product Record 1 Product A Record 1 Product D Record 2 Product B Record 3 Product D Record 4 Product C Record 4 Product D Record 4 Product E Record 5 Product A Record 5 Product D Record 5 Product E
This table will automatically be associated with the Products dimension table because both tables have a field named Product. You can now simply select a product in a listbox and the records will be filtered to show only those records with the selected product.