In terms of your first question, any filter from a secondary data source will have a NULL option. This is just a limitation of data blending. Typically I would recommend doing a table join rather than data blending if possible. However, if you are linking on a high level field (aka if there are many records for each combination of values in the linking fields), then a table join will create a lot of data duplication.
For your second question, you are hitting this issue IF Statement With Aggregated Fields Returns Either Nothing or Everything. ATTR() is an aggregation.
When creating a calculation that uses fields from two different data sources, then all fields must be aggregated. This is another limitation of data blending.
Thus in order to make that IF statement work, you would need both [Baseline Source 2] and [Baseline Parameter] in the view. This will obviously change how the view looks, but there are extra steps you can take it make it look like the dimensions have not been added. This is the same as option 2 in Computing a Table Calculation by a Dimension Not Present in the View
Hope this helps!
Hi Patrick, the blog post reference was in regards to using Sets from secondary sources, and I did create that post: How to Have Sets with Your Secondary (Data Sources) | Drawing with Numbers .
Besides Esther's excellent suggestions (and I agree w/her recommendation to try a join first) here are two other ideas:
We can sometimes get rid of the Null value that Tableau always adds to secondary dimension filters is to use a table calculation filter instead of the dimension filter. It only works when the blend level of detail (based on the linking dimensions) is such that ATTR(dimension) would return all of the dimension values. The calculation would be LOOKUP(ATTR([dimension]),0). A couple of drawbacks to this method are that table calculation filters are "late" in Tableau's internal calculation pipeline they can a) end up being slower than dimension filters (since Tableau has to return more data to the view) and/or b) cause some calculations to not return the desired results when those calculations are computed before the filter is applied. Here's a screenshot using a self-blended Superstore data set where we can see Tableau always imputes the Null for the dimension filter and * for ATTR() filter neither for the table calculation filter:
The other method that I've used with a dimension or ATTR()-based filter is to put the worksheet on a dashboard and float a text object over the Null or * entry in the filter so even though it's always there it's never visible to the end user. This really only works for single or multiple value list quick filters when we don't want an "All" option, otherwise we end up with extraneous whitespace.