Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now
Hello All,
I have table having data like below.
USA-West
USA-East
I need to extract text after -
Please suggest how to do
Solved! Go to Solution.
You'd have to use IF() and then add a search for something that is unique for those rows. I assumed "(" is unique for these and did below, but you might have to adjust accordingly:
Column =
IF(
SEARCH("(",'Table'[Name],1,-1) > 0,
MID(
'Table'[Name],
SEARCH("(",'Table'[Name]) + 1,
LEN('Table'[Name]) - SEARCH("(",'Table'[Name]) - 1
),
MID(
'Table'[Name],
SEARCH("-",'Table'[Name],1,0) + 1,
LEN('Table'[Name]) - SEARCH("-",'Table'[Name],1,0)
)
)Hope this helps!
Did my answer help? Feel free to give kudos and mark as solution to show your support. Thanks!
@Anonymous
If there are names without a dash then you can add a handling error function
Column = IFERROR(MID(Sheet1[Name], FIND("-",Sheet1[Name])+1,300), Sheet1[Name])
Hi!
You can use a combination of SEARCH(), MID() and LEN().
Column =
MID(
'Table'[Name],
SEARCH("-",'Table'[Name]) + 1,
LEN('Table'[Name]) - SEARCH("-",'Table'[Name])
)
Hope this helps!
Not seing the specific error but could be that you have some rows that do not have "-" which causes SEARCH() to throw an error. You can adjust the calculated column to this then:
Column =
MID(
'Table'[Name],
SEARCH("-",'Table'[Name],1,0) + 1,
LEN('Table'[Name]) - SEARCH("-",'Table'[Name],1,0)
)
Hi @TomasAndersson ,
Thanks for your answer.
I need to check one more condition here.
If my column having values like below and I need to show like this
if Column = 'SupportL2 – (ESI-India)' then ESI-India
if Column = 'SupportL2 – APAC (ESI-China)' then ESI-China
if Column = 'SupportL2 – APAC (ESI-PCS)' then ESI-PCS
and if the column having values apart from this I need use the logic we created above.
Please suggest how to do
You'd have to use IF() and then add a search for something that is unique for those rows. I assumed "(" is unique for these and did below, but you might have to adjust accordingly:
Column =
IF(
SEARCH("(",'Table'[Name],1,-1) > 0,
MID(
'Table'[Name],
SEARCH("(",'Table'[Name]) + 1,
LEN('Table'[Name]) - SEARCH("(",'Table'[Name]) - 1
),
MID(
'Table'[Name],
SEARCH("-",'Table'[Name],1,0) + 1,
LEN('Table'[Name]) - SEARCH("-",'Table'[Name],1,0)
)
)Hope this helps!
Did my answer help? Feel free to give kudos and mark as solution to show your support. Thanks!
Check out the November 2025 Power BI update to learn about new features.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
| User | Count |
|---|---|
| 103 | |
| 80 | |
| 63 | |
| 50 | |
| 45 |