Forum Discussion
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:
- Anonymous1 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
- hnguy71Super User
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 - AnonymousNot 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
- Tahreem24Super User
HELLOVARAS4 Try this DAX:
Measure = CONCATENATE( "Welcome " , LEFT( USERPRINCIPALNAME() , SEARCH("@", USERPRINCIPALNAME())-1)) - Tahreem24Super User
HELLOVARAS4 Or you could also try this DAX measure:
Measure =CONCATENATE("Welcome " & UPPER(LEFT(USERPRINCIPALNAME(),1)),MID(USERPRINCIPALNAME(),2,SEARCH(".",USERPRINCIPALNAME())-2))