I have a page with 10 different filters. The user can apply none, all or something in between. I use a series of If's in my filter to determine which criteria to use. The very first criteria (RMRegion = ConsultantRegion) is always used, the rest are variable. I use the 1=1 in my IFs for clarity to say I'm not using this test -- so don't throw anything out (1=1 will always be true). You should be able to write something similar for your set of filters.
Filter(colResources,
RMRegion = ConsultantRegion,
If(ContainsSpecial, 1=1, Left(ConsultantCountry,13) = "United States", ConsultantArea in colGeoFilter.RMGeo, ConsultantCountry in colGeoFilter.RMGeo),
If(IsBlank(txtName.Text), 1=1, txtName.Text in Title || Upper(txtName.Text) in Upper(QuicklookID)),
If(txtArea.Selected.Result = " None selected", 1=1,
ConsultantLocation in Filter(Filter(colGeo,txtArea.Selected.Result = Area).d0rf,!IsBlank(d0rf)) ||
ConsultantCountry in Filter(colGeo,txtArea.Selected.Result = Area).Geo),
If(txtCountry.Selected.CountryName = " None selected", 1=1, ConsultantCountry = txtCountry.Selected.CountryName) ||
(!IsBlank(ConsultantLocation) && ConsultantLocation in Filter(colGeo,txtCountry.Selected.CountryName = Geo).d0rf),
If(txtLocation.Selected.Result = " None selected", 1=1, ConsultantLocation = txtLocation.Selected.Result),
If(txtPractice.Selected.Result = " None selected", 1=1, ConsultantPractice = txtPractice.Selected.Result),
If(txtSubpractice.Selected.Subpractice = " None selected" || IsBlank(txtSubpractice.Selected.Subpractice), 1=1,
ConsultantSubpractice = txtSubpractice.Selected.Subpractice),
If(txtRole.Selected.Role = " None selected", 1=1, ConsultantRole = txtRole.Selected.Role),
If(IsBlank(txtKeyword.Text),1=1, txtKeyword.Text in Keywords),
If(ddCitizenship.Selected.CountryName = " None selected",1=1, ddCitizenship.Selected.CountryName in Citizenship),
If(IsBlank(txtClearance.Text),1=1, txtClearance.Text in Clearance))