Announcements
This site is in read only until July 22 as we migrate to a new platform; refer to this community post for more details.

Redundant vs. interdependent vs. row-level slice row filter conditions

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:

  • Repeating the verbatim conditions across slices vs.
  • Directly referencing less stringent slices in more stringent slices vs.
  • Pushing the conditions explicitly down to each row and referencing those

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]

 

2 4 185
4 REPLIES 4
Top Labels in this Space