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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
prasaddn
Frequent Visitor

Power BI Default User Filter with No RLS

Hi All,
This is regarding the video shared by Injae Park.  

 

https://youtu.be/59htvti1ldQ

 

I have exact similar requirements. However, I explored a lot and tried different ways, but could not achieve the same.

I checked some discussion on this. Again, with bookmarks it requires users to set up the bookmark on service.  And as a developer I would not be able to set it up for users.  I have a large list of users and not all users have access to service.  

Request if any of you can share your views if you have used such technique. It would even be grateful if you can share a dummy PBIx file addressing such technique.



https://community.fabric.microsoft.com/t5/Desktop/How-to-set-user-filter-based-upon-the-logged-in-us...

 

Power BI slicers don’t support dynamic default selections based on the logged-in user. Even though your measure using USERPRINCIPALNAME() works for filtering visuals conditionally, slicers themselves won’t pre-select a value automatically on report load.
Use Bookmarks for Personal Defaults:

Set the slicer to a user's name.
Create a personal bookmark and have the user save it as their default view.
This still requires one-time setup by each user but works on subsequent opens.

 

Regards, 

Prasad 

8 REPLIES 8
cengizhanarslan
Solution Sage
Solution Sage

Power BI slicers don’t have a true “dynamic default selection” (they won’t auto-select a value just because USERPRINCIPALNAME() matches). The practical workaround is to filter the slicer visual itself so it only shows the logged-in user when the report opens. That makes it look like it default-selected them. 

 

Create a measure like this (adjust column names):

IsLoggedInUser =
VAR u = USERPRINCIPALNAME()
RETURN IF( SELECTEDVALUE(DimUsers[UPN]) = u, 1, 0 )

 

Then select your User slicer (works best with the new Button slicer), open the Filters pane → Filters on this visual, drop IsLoggedInUser there, and set it to is 1. Now the slicer will only display the current user on load, without requiring personal bookmarks or RLS. 

 

If you still want users to optionally view others, you can provide a “Reset / Show all users” experience (e.g., a separate page, or a toggle-driven calculation-group approach), but the core “default to me” behavior is achieved by that visual-level filter.

_________________________________________________________
If this helped, ✓ Mark as Solution | Kudos appreciated
Connect on LinkedIn
tharunkumarRTK
Super User
Super User

@prasaddn 

Assuming your requirement is to default the selection in a 'User' slicer based on logged in user, And with out using RLS and personal boomarks.

 

I would like to suggest one workaround, If you are ok to

 

Step 1: add an additional row in your access table for the logged in user and 

tharunkumarRTK_0-1767526802601.png

 

if you are ok to keep the default selection in the slicer as 'Me' then this workaround might work for you.

tharunkumarRTK_1-1767526915054.png

Step 2 - Create a measure to filter logged in user from User slicer

 

RemoveLoggedInUser = 
VAR __AllUsers = ALL(DimAccess[User UPN])
VAR __LoggedInUser = USERPRINCIPALNAME()
VAR __UserInCurrentRow = SELECTEDVALUE(
    DimAccess[User UPN],
    "user1@rtktechietips.com"
)
VAR __LoggedInUserNotinTheAccessTable = NOT (__LoggedInUser IN __AllUsers)
VAR __Result = IF(
    __LoggedInUserNotinTheAccessTable,
    1,
    IF(
        __LoggedInUser = __UserInCurrentRow,
        0,
        1
    )
)
RETURN
    __Result

 

 Add this measure as visual level filter on User slicer

tharunkumarRTK_2-1767527038711.png

 

Step 3 - Create a calculation group to apply logged in User filter

 

ReplaceMe = 
IF(
ISSELECTEDMEASURE([RemoveLoggedInUser]),
SELECTEDMEASURE(),
VAR __AllUsers = ALL(DimAccess[User UPN])
VAR __selectedUser = SELECTEDVALUE(
    DimAccess[User UPN],
    "user1@rtktechietips.com"
)
VAR __loggedInUser = USERPRINCIPALNAME()
VAR __loggedInUserValue = CALCULATE(
    SELECTEDMEASURE(),
    KEEPFILTERS(DimAccess[User UPN] = __loggedInUser),
    REMOVEFILTERS(DimAccess)
)
VAR __selectedUserValue = SELECTEDMEASURE()
VAR __LoggedInUserNotinTheAccessTable = NOT (__LoggedInUser IN __AllUsers)
VAR __LoggedInUserNotinTheAccessTableValue = CALCULATE(
    SELECTEDMEASURE(),
    REMOVEFILTERS(DimAccess)
)
VAR __Result = IF(
    __LoggedInUserNotinTheAccessTable && __selectedUser = "loggedInUser",
    __LoggedInUserNotinTheAccessTableValue,
    IF(
        __selectedUser = "loggedInUser",
        __loggedInUserValue,
        __selectedUserValue
    )
)
RETURN
    __Result
)

 

Add this calculation group column as report level filter

tharunkumarRTK_3-1767527118642.png

Change the slicer selection type as "Single Select".

Keep the default selection in the slicer as "Me".

When user4 logs in, data in the table visual is filtered with user4 and

tharunkumarRTK_0-1767527212932.png

user4 still has the option to switch to other users.

tharunkumarRTK_1-1767527239317.png

 

Hope this helps! 

You can download the file from this page

 

 

 

 

Connect on LinkedIn

Visit my website to read blogs on Power BI and Microsoft Fabrichttps://www.techietips.co.in/

 

 

 








Did I answer your question? Mark my post as a solution!
If I helped you, click on the Thumbs Up to give Kudos.

Proud to be a Super User!


PBI_SuperUser_Rank@2x.png

 

AshokKunwar
Resolver I
Resolver I

Hi Prasad,

You are correct that standard Power BI slicers do not natively support dynamic defaults. However, you can achieve the "Injae Park method" without requiring users to set up personal bookmarks by using a Visual-Level Filter on the New Button Slicer.

This approach allows the report to "pre-select" the user based on their login email as soon as the report opens.

Step 1: Create the "User Match" Measure

First, we need a measure that identifies if the user in your data matches the person currently viewing the report.

 

IsLoggedInUser = 

VAR _CurrentUser = USERPRINCIPALNAME()

RETURN

IF( SELECTEDVALUE('AccessTable'[Email]) = _CurrentUser, 1,

0 )

 

 

(Replace 'AccessTable'[Email] with the table and column containing your users' login emails).

Step 2: Configure the Button Slicer

Instead of the traditional slicer, use the New Button Slicer visual:

Add your User Name or Email field to the Button Slicer.

Open the Filters Pane while the slicer is selected.

Drag the IsLoggedInUser measure into the "Filters on this visual" section.

Set the filter to is 1 and click Apply filter.

Step 3: Why this works for your scenario

No User Action Required: Because the filter is applied to the visual itself, the slicer will only show (and therefore default to) the logged-in user's name the moment they open the report.

Scalability: This works for 10 users or 10,000 users because it relies on USERPRINCIPALNAME() rather than manual configurations.

No Service Bookmarks: This is a developer-side fix. It functions perfectly for users who only have "Viewer" access and cannot create their own bookmarks.

Pro-Tip:

If you want users to be able to see other people's data after the initial load, you can add a "Reset" button or a secondary slicer that is not filtered by this measure.

If this addresses your requirement for a dynamic default without manual bookmarks, please mark this as an "Accepted Solution" so other community members can find it!

Best regards,

Vishwanath 

thank you @AshokKunwar for the reply. Let me check the suggested ideas and come back shortly (1 or 2 days).  Regards, Prasad 

Hi @prasaddn 

Your issue is solved or not

 

If this addresses your requirement for a dynamic default without manual bookmarks, please mark this as an "Accepted Solution" so other community members can find it!

Best regards,

Vishwanath 

v-dineshya
Community Support
Community Support

Hi @prasaddn ,

Thank you for reaching out to the Microsoft Community Forum.

 

Native Power BI slicers don’t support a dynamic default selection based on the logged‑in user (e.g., via USERPRINCIPALNAME()), even though that function works perfectly to conditionally filter visuals/measures. Slicers themselves remain “sticky” last published or last personal selection unless you use bookmarks or a workaround.

 

Please try below alternative workarounds without RLS.

 

1. If all users open the same starting view not personalized, you can publish the report with your desired filters, then rely on persistent filters in Service or Reset to default. Or add a Bookmark + Button that resets the page to your chosen default view.

 

2. Ask each user to select their name in the slicer once, then Save as personal bookmark and Set as default view. Personal bookmarks persist across browsers/devices and don’t need RLS.

 

3. If you want a default subset like current user’s territories that applies only when slicers are not actively filtering, you can use a calculation group to inject filters until a slicer selection exists.

 

Please try below links.

Overview of Bookmarks in Power BI Service Reports - Power BI | Microsoft Learn

Set Up Default Filters in Power BI - Microsoft Fabric Community

How to dynamically select the default values we ne... - Microsoft Fabric Community

 

Please refer below Ideas forum link and upvote the appropriate idea related to your scenario.

Dynamically switch between bookmarks based on sele... - Microsoft Fabric Community

Search - Microsoft Fabric Community

 

If not we would recommend submitting your detailed feedback and ideas through Microsoft's official feedback channels, such as Microsoft Fabric Ideas. Feedback submitted through these channels is frequently reviewed by the product teams and can contribute to meaningful improvements.

https://ideas.fabric.microsoft.com/ideas/search-ideas/ 

 

I hope this information helps. Please do let us know if you have any further queries.

 

Regards,

Dinesh

 

 

 

 

thank you @v-dineshya for taking time and sharing your thoughts. I will explore the links and options provided to see what best can match my requirements.   

Hi @prasaddn ,

Thank you for the update. As you mentioned in your previous response, you are working on provided solution, could you please provide the Estimated time for arrival (ETA) for this thread.

 

Regards,

Dinesh

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.