Forum Discussion

HELLOVARAS4's avatar
HELLOVARAS4
Frequent Visitor
1 year ago
Solved

Username function error

Hello,

 

I have an error with a measure that I dont know how to correct. It works on one page but not on another in the same PBIX file. Below is the DAX and attached in the error. It just stopped working. I have the same measures on all my reports and it works fine. Any help will be appreciated. 

DAX:

_Username =
    VAR _Name = USERNAME()
    VAR _Name2 = LEFT( _Name , SEARCH("@", _Name )-1)
RETURN
    CONCATENATE( "Welcome " , LEFT( _Name , SEARCH(".", _Name2 )-1) & "!"
    )
 
Error:

 

  • Anonymous's avatar
    Anonymous
    1 year ago

    Hi HELLOVARAS4 ,

     

    This is because username() will return a user in the format of DOMAIN\User and userprincipalname() will return a user in the format of [email protected] inPower BI Desktop

     

    Note: Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). This looks similar to an email address.

     

    To solve this problem, you can use the IFERROR function to handle the error condition.

     

    For example, if the SEARCH function can't find the target character, it will return 10 instead of an error. You can replace 10 with a different default value or processing logic as needed.

    _Username = 
        VAR _Name = USERNAME()
        VAR _Name2 = LEFT( _Name , IFERROR(SEARCH("@", _Name ),10)-1)
    RETURN
        CONCATENATE( "Welcome " , LEFT( _Name , IFERROR(SEARCH(".", _Name2 ),10)-1) & "!"
        )

     

     

    Best regards,

    Mengmeng Li

4 Replies

  • Hi HELLOVARAS4 ,


    Seems the issue is stemming from your missing "." character. Let's try to debug it and see which part of your search is causing your error and then we can fix it. What does this return you?

    _Username =
        VAR _Name = USERNAME()
        VAR _Name2 = LEFT( _Name , SEARCH("@", _Name )-1)
    RETURN
    _Name2
  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi HELLOVARAS4 ,

     

    This is because username() will return a user in the format of DOMAIN\User and userprincipalname() will return a user in the format of [email protected] inPower BI Desktop

     

    Note: Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). This looks similar to an email address.

     

    To solve this problem, you can use the IFERROR function to handle the error condition.

     

    For example, if the SEARCH function can't find the target character, it will return 10 instead of an error. You can replace 10 with a different default value or processing logic as needed.

    _Username = 
        VAR _Name = USERNAME()
        VAR _Name2 = LEFT( _Name , IFERROR(SEARCH("@", _Name ),10)-1)
    RETURN
        CONCATENATE( "Welcome " , LEFT( _Name , IFERROR(SEARCH(".", _Name2 ),10)-1) & "!"
        )

     

     

    Best regards,

    Mengmeng Li

  • HELLOVARAS4 Try this DAX:

     

    Measure = CONCATENATE( "Welcome " , LEFT( USERPRINCIPALNAME() , SEARCH("@", USERPRINCIPALNAME())-1))
     

     

     
  • HELLOVARAS4 Or you could also try this DAX measure:

     

    Measure =
    CONCATENATE("Welcome " & UPPER(LEFT(USERPRINCIPALNAME(),1)),MID(USERPRINCIPALNAME(),2,SEARCH(".",USERPRINCIPALNAME())-2))