Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Show Current Logged in User data only

Hello Folks,

 

I am new to DAX query in Power BI and struggling to use SelectedValue - any other ways would do as well.

 

The requirement is to show the data as per the Current Logged In User - in my table, I have got the User Principal Name which I using as follows:

 

CurrentUserData =
VAR CurrentDataFilter = FILTER(TimeReport, TimeReport[UserPrincipalName] =USERPRINCIPALNAME())
RETURN
SWITCH(
TRUE(),
SELECTEDVALUE(TimeReport[UserPrincipalName] = CurrentDataFilter),
FALSE()
)

 

This is not working, hence need your help here.

 

Thanks!

 

UserPrincipalNameNameDateFunctionP1P2P3
[email protected]John 01-12-2021TID555
[email protected]Christina02-12-2021KID51020
[email protected]Sarah03-12-2021AD1152
[email protected]Christina05-12-2021TID5515
[email protected]John03-12-2021TID881

 

3 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Got the solution and credit goes to miguelarce 
    https://community.powerbi.com/t5/Developer/RLS-vs-Filter-for-current-user/m-p/329584


    Measure1
    WhoIsWatching = USERPRINCIPALNAME() 
    (that is email style usernames, or you can use USERNAME() for windows style users)

     


    Measure 2
    FilterByViewer = IF(selectedvalue(table[email])=[WhoIsWatching],1,0)

     


    Drag Measure 2 as a filter for visual, select advanced filtering and set it to 
    "Show items when value IS 1"

     

    • Rabbasrssr's avatar
      Rabbasrssr
      Frequent Visitor

      Hi fmourtaza,

      do you have a test pbix file to share? it doesnt seem to work for me.

      Thanks

  • Anonymous's avatar
    Anonymous
    Not applicable

    Almost there - I am now able to filter the data based on the Current Logged In user.

     

    Next is I wanna show Multiple Columns in my Visual (see a line with Values) - in the below case I get only 1 value - I tried to return a complete row but it throws me the error "Multiple columns cannot be converted to a scalar value"  - any other way to show multiple columns?

     

    CurrentUserData =
    VAR CurrentUserState = CALCULATE(MAX(TimeReport[UserPrincipalName]),FILTER(TimeReport, TimeReport[UserPrincipalName] = USERPRINCIPALNAME()))
    RETURN
    IF(
    SELECTEDVALUE(TimeReport[UserPrincipalName]) = CurrentUserState,
    Values(TimeReport[Neukunden_Akquise_Produkte])
    )