Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Measure and return multiple columns

Hello Folks,

 

I am filtering the data based on the current logged in user using the below query, now I would like to return some of the columns associated with that user - how to achieve that ? 

 

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])
)
 
Thanks

2 Replies

  • Anonymous , Try like

     

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

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Amit, thanks for the reply.

     

    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"