Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
Anonymous
Not applicable

How to Capitalize only the Initial letters in DAX

I have an Existing Column in the Model with Datatype TEXT. I need to create a Calculated Column with Intial Letter as Capital... Is that possible in DAX...? If so How to do that...?

I have row like : "JUST for An example"   ---- Need not to be only 4 words, they might be in between 1 and 6

I need the row to be look like this : "Just For An Example"... I want Intial letter of every word to be Capital....

 

10 REPLIES 10
Ahmedx
Super User
Super User

Based on your description, I created data to reproduce your scenario. The pbix file is attached in the end.
https://1drv.ms/u/s!AiUZ0Ws7G26Rh3tzJxjI9HhvZjDF?e=UjDUjZ

Screen Capture #1075.png

JulioGadioli
Frequent Visitor

This work for my: Thanks @Anonymous 

your way not possible to convert text to number, on the finish is better get only 2 letters, below full code for calendar table:

>> "MêsCurto", UPPER(LEFT(FORMAT([date],"MMM"),1)) & right(FORMAT([date],"MMM"), 2),

 

dCalendario = 
var dataminima1 = FIRSTDATE(Table[Data transação])
var dataminima2 = FIRSTDATE(Table[Data Vencimento])
var dataminima3 = FIRSTDATE(Table[Data pagamento])
var dataminima4 = FIRSTDATE(Table[Competência])
var datamin1 = MIN(dataminima1,dataminima2)
var datamin2 = MIN(dataminima3, dataminima4)
var datamin = MIN(datamin1,datamin2)
--
var datamaxima1 = LASTDATE(Table[Data transação])
var datamaxima2 = LASTDATE(Table[Data Vencimento])
var datamaxima3 = LASTDATE(Table[Data pagamento])
var datamaxima4 = LASTDATE(Table[Competência])
var datamax1 = MAX(datamaxima1,datamaxima2)
var datamax2 = MAX(datamaxima2, datamaxima3)
var datamax = MAX(datamax1,datamax2)

return

ADDCOLUMNS (CALENDAR(datamin, datamax),
"Data", FORMAT ( [date], "DD/MM/YYYY" ),
"Dia", FORMAT ( [date], "DD" ),
"Mês", FORMAT ( [date], "MM" ),
"DateAsInteger", FORMAT ( [date], "YYYYMMDD" ),
"Ano", YEAR ( [date] ), "MonthNo",  FORMAT ( [date], "MM" ), 
"AnoMesNum", FORMAT ( [date], "YYYY/MM" ), 
"AnoMes", FORMAT ( [date], "YYYY/mmm" ), 
"MêsCurto", UPPER(LEFT(FORMAT([date],"MMM"),1)) & right(FORMAT([date],"MMM"), 2),
"MêsLongo",  FORMAT ( [date], "mmmm" ), 
"SemanaNum", WEEKDAY ( [date] ), 
"SemanaDia", FORMAT ( [date], "dddd" ), 
"SemanaDiaCurto", FORMAT ( [date], "ddd" ), 
"Trimestre", "T" & FORMAT ( [date], "Q" ), 
"AnoTrimestre", FORMAT ( [date], "YYYY" ) & "/T" & FORMAT ( [date], "Q" ))

 

Rygaard
Resolver I
Resolver I

you cant do that in 1 operation

1) Lowercase all

2) split column by 1 characther (only 1 split)

3) Capital all in first colum (containing only 1 char)

4) merg the two columns

kankas3
Regular Visitor

You have to use some workaround solution. When you have this kind of requirement, break that into smaller pieces and resolve those pieces one by one. Ultimately you can consolidate those solutions to get your final answer. 

 

Selected Month is like "FY23 M04 AUG" (Financial Month). So, this variable has "JAN", "FEB" but following DAX change "JAN" as "Jan", "FEB" as "Feb" etc...

 

Concatenate( Left(Right(_Selected_Month, 3 ),1),
Concatenate( Lower(Right(Right(_Selected_Month, 3 ),2)),
 
var _Consolidate_Report_Heading =
Concatenate( "Macro & Micro Metrics - Supplier ( ",
Concatenate( Left(Right(_Selected_Month, 3 ),1),
Concatenate( Lower(Right(Right(_Selected_Month, 3 ),2)),
Concatenate( " MOR snapshot ) as of ",
Calculate( Max( 'Last Refreshed Date'[Date Last Refreshed] ))))))
Anonymous
Not applicable

Try this out:

 

 

UPPER(LEFT([your_string];1)) & right([your_string]; len([your_string])-1)
aznariy
Advocate I
Advocate I

I don't think this question was answered properly according to the title of the question (in DAX, not in PowerrBi user interface). 

 

I am using measure and would like to capitalize the word, but UPPER function makes all the letter in the word capital.  

 

What is the proper way to capitalize a single word (not values in a column) using DAX language in PowerBi? 

Anonymous
Not applicable

Hi @Anonymous,

 

Why not use Power Query / M to do this task? There is a quick and simple way to achieve that by using lowercase + Capitalize Each Word transformations.

 

Format transformations in Power QueryFormat transformations in Power Query

 

HTH,

Pawel

Anonymous
Not applicable

I am importing the table directly from SQL Server to SSAS Tabular model and then to Live connected Power BI so I have to Capitalise Initials in SSAS tabular model by using DAX...


@Anonymous wrote:

I am importing the table directly from SQL Server to SSAS Tabular model and then to Live connected Power BI so I have to Capitalise Initials in SSAS tabular model by using DAX...


@Anonymous

AFAIK, there's no such existing function to do that in DAX. You may do the trick when importing from SQL Server via T-SQL. See some this demo and this.

Anonymous
Not applicable

Thanks... 

Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.