Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
JarmoAhosola
New Member

Preventing hostile self service reporting on privacy sensitive data

The root problem I have is to provide self service reporting on privacy sensitive data and prevent hostile attempts to breech privacy by filtering. The data set has low amounts of data which would make report complately useless if distributions does not show small amounts.

 

My aim is to show small amounts only as part of distribution which is big enough and as reporting is self service, the problem need to be addressed at measure, not at the report.

 

Basically what I need is to hide all data that would have row total or column total at visual less than limit constant in case data is not hidden. And that recardless of axis and filter chosen at report. I would start the idea from something like:

my_protected_measure =

  VAR unprotected_measure = ...

  VAR column_total =

    CALCULATE(

      unprotected_measure,

      REMOVEFILTERS(current visual row dimension)

    )

  VAR row_total =

    CALCULATE(

      unprotected_measure,

      REMOVEFILTERS(current visual column dimension)

    )

  RETURN IF(AND(row_total >= 5, column_total >= 5), unprotected_measure, BLANK())

 

How can I refer to current visual row and column dimensions at the measure?

 

If that is not possible, is there some out-of-the-box solution for handling privacy data at self service reporting?

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi  @JarmoAhosola ,

I created some data:

vyangliumsft_0-1668667177298.png

Do you want to implement the filtering of a single value in the matrix, this may not be possible, in the matrix either filter the entire column, or filter the entire row, if filtered to a single value, it will form a Blank.

Here are the steps you can follow:

Create measure.

Flag1 =
IF(
    HASONEVALUE('Table'[Date])&&SUMX(FILTER(ALL('Table'),'Table'[Date]=MAX('Table'[Date])),[Value])>=20,MAX('Table'[Value]),BLANK())
Flag2 =
IF(
    HASONEVALUE('Table'[Group])&&SUMX(FILTER(ALL('Table'),'Table'[Group]=MAX('Table'[Group])),[Value]) >=35,MAX('Table'[Value]),BLANK())

vyangliumsft_1-1668667177303.png

 

Best Regards,

Liu Yang

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly

View solution in original post

1 REPLY 1
Anonymous
Not applicable

Hi  @JarmoAhosola ,

I created some data:

vyangliumsft_0-1668667177298.png

Do you want to implement the filtering of a single value in the matrix, this may not be possible, in the matrix either filter the entire column, or filter the entire row, if filtered to a single value, it will form a Blank.

Here are the steps you can follow:

Create measure.

Flag1 =
IF(
    HASONEVALUE('Table'[Date])&&SUMX(FILTER(ALL('Table'),'Table'[Date]=MAX('Table'[Date])),[Value])>=20,MAX('Table'[Value]),BLANK())
Flag2 =
IF(
    HASONEVALUE('Table'[Group])&&SUMX(FILTER(ALL('Table'),'Table'[Group]=MAX('Table'[Group])),[Value]) >=35,MAX('Table'[Value]),BLANK())

vyangliumsft_1-1668667177303.png

 

Best Regards,

Liu Yang

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.