I have a table with several slices used for different purposes. Many of the slices are tiered in the sense that each references successively more stringent filter criteria. I wonder whether there's an optimal approach to defining the row filter conditions in terms of:
Any guidance regarding benefits or drawbacks (e.g., app performance or anything else) of each of the approaches is appreciated. Examples follow.
Note: For purposes of these examples, I simplified representation of the filter criteria to basic [Criterion X] columns. In reality, each of the AND functions' arguments in the examples is typically more complex than just a reference to a single boolean column from the slice's table--i.e., they use functions like IF, derefs to parent values like [Parent ID].[Parent Table Column], comparisons to values in other tables like [User ID] = INDEX(Current User[User ID], 1), etc.
Redundant approach
SliceA row filter condition
AND(
[Criterion 1],
[Criterion 2]
)
SliceB row filter condition
AND(
[Criterion 1],
[Criterion 2],
[Criterion 3],
[Criterion 4]
)
SliceC row filter condition
AND(
[Criterion 1],
[Criterion 2],
[Criterion 3],
[Criterion 4],
[Criterion 5],
[Criterion 6]
)
Interdependent approach
SliceA row filter condition
AND(
[Criterion 1],
[Criterion 2]
)
SliceB row filter condition
AND(
IN([ID], SliceA[ID]),
[Criterion 3],
[Criterion 4]
)
SliceC row filter condition
AND(
IN([ID], SliceB[ID]),
[Criterion 5],
[Criterion 6]
)
Row-level approach
[InSliceA] virtual column app formula
AND(
[Criterion 1],
[Criterion 2]
)
[InSliceB] virtual column app formula
AND(
[InSliceA],
[Criterion 3],
[Criterion 4]
)
[InSliceC] virtual column app formula
AND(
[InSliceB],
[Criterion 5],
[Criterion 6]
)
SliceA row filter condition
[InSliceA]
SliceB row filter condition
[InSliceB]
SliceC row filter condition
[InSliceC]
User | Count |
---|---|
36 | |
8 | |
3 | |
2 | |
2 |