Use Boolean values rather than strings – also that might enforce that there have been only two legal values. If your field, say it’s called Completed, contained Boolean values (I.e. either TRUE or FALSE), then to point out whether all records were completed, I.e. had the worth TRUE within the Completed Column, you’d simply use MIN([Completed]).
This works because Tableau treats True as greater than False, so MIN(condition) is true if and as long as condition is True for each record – ignoring nulls. MAX(condition) is true if and as long as there’s a minimum of one record with condition set to True. So for Booleans, you’ll read MIN() as “every” and MAX() as “any”.
The one wrinkle is that if your boolean field allows null values. If so, you’ll decide between a couple of options. you’ll take the default behavior which is to silently ignore nulls as if they don’t exist, otherwise you can wrap the sector reference during a call to IFNULL() to provide a default value of your option to replace the nulls. Really an equivalent for any data type and aggregation function.
This technique is beneficial in several situations, including defining conditions for sets.
Finally, if your data set has got to use strings like “YES” and “NO” rather than booleans, you’ll convert to booleans easily by defining a replacement calculated field like Completed as [Completed-Original] = “YES”