
There are some circumstances that we need to add a number one zero to a digit, similar to displaying 01 as a substitute of 1, 02 as a substitute of 2 and so forth. We’ve two choices to do that in Energy BI, doing it in Energy Question or doing it with DAX.
Including a Main Zero in Energy Question
The primary technique is doing it in Energy Question utilizing the Textual content.PadStart()
operate.
Right here is how the syntax of the operate:
Textual content.PadStart(textual content as nullable textual content, rely as quantity, non-compulsory character as nullable textual content)
And right here is how the operate works:
Textual content.PadStart(enter string, the size of the string, an non-compulsory character to be added to the start of the string util we attain to the string size)
For instance, Textual content.PadStart("12345", 10 , "a")
returns aaaaa12345
and Textual content.PadStart("1", 2 , "0")
returns 01
.
Let’s create a listing of integer values between 1 to twenty with the next expression:
{1..20}
Now we convert the record to a desk by clicking the To Desk button from the Rework tab:
Now we add a brand new column by clicking the Customized Column from the Add Column tab from the ribbon bar:
Now we use the next expression within the Customized Column window to pad the numbers with a number one zero:
Textual content.PadStart(Textual content.From([Number]), 2, "0")
Listed below are the outcomes:
And the final step is to appropriate the columns’ information varieties by deciding on all columns (press CTRL + A) then clicking the Detect Information Sort button from the Rework tab from the ribbon.
Eventually we click on Shut & Apply to load the info into the info mannequin.
Including a Main Zero with DAX
I’m an enormous fan of caring for any type of transformation actions in Energy Question. However, in some circumstances, we need to add a number one zero to a quantity simply to format the quantity. I imply, including a number one zero to numbers isn’t essentially a metamorphosis exercise. It’s possible you’ll need to pad the outcomes of a measure with a number one zero if the quantity is between 0 and 10. The next technique works regardless although. And… it is rather easy. Less complicated than you assume. We simply want to make use of the FORMAT()
operate in DAX. The output of the operate is a string.
The syntax of the FORMAT capabilities is:
FORMAT(, )
And right here is how the operate works:
FORMAT(a single worth or an expression that returns a single worth, a format string)
The formatting template of the operate is the place all of the magic occurs. There may be a variety of formatting templates together with predefined ones and customized formatting.
Right here is how we pad a number one zero with DAX:
FORMAT(, "0#")
We simply want to make use of the above sample in our calculations both within the calculated columns or measures. In our instance, we add a calculated column, so right here is the DAX expression for the calculated column:
Quantity with Main Zero in DAX = FORMAT('Main Zero'[Number], "0#")
That’s it.
However wait, what if our record of numbers ranging from 0? Let’s change our pattern information in Energy Question so the record begins from 0, and cargo the info into the mannequin once more. Here’s what we get:
Hmm! That doesn’t look good!
Right here is the answer in Energy Question:
if [Number] = 0
then "0"
else Textual content.PadStart(Textual content.From([Number]), 2, "0")
It’s possible you’ll assume that we are able to use the identical logic in DAX utilizing IF()
operate, which we positively can, however wait; I need to present you a greater trick. Right here is the DAX expression with out utilizing IF()
:
Quantity with Main Zero in DAX = FORMAT('Main Zero'[Number], "0#;;0")
Every format string can have as much as 4 sections. We will separate every formatting part utilizing a semicolon (;). If the format string has one part then it applies to all values, in any other case:
- The primary part applies to constructive values
- The second part applies to detrimental values
- The third part applies to zeros
- The forth part applies to
Null
values
So, the format string of the latter DAX expression ("0#;;0"
) add a number one zero to every integer worth, but when the worth is zero, then it reveals zero.
If you wish to be taught extra about Information Modelling with Energy BI, be sure that to get your copy of my e book, Knowledgeable Information Modeling with Energy BI which is offered on a number of platforms.
There may be one other situation that will not even require including a brand new calculated column with padded values. Suppose you’ve gotten a desk with an Index column, similar to what I’ve within the above instance and I simply need to present the padded values. In that case, I don’t even want so as to add a calculated column. Certainly, I can format the Quantity column to point out the padded integer values. Let’s see how it’s potential:
- Choose the Quantity column
- Use the next formatting string within the Format dropdown of the Formatting part from the Column instruments from the ribbon
"0#;;0"
That is very cool, once we format values, we’re not altering the info kind. So after formatting the values, they’re nonetheless numeric values, which in my instance it’s Entire Quantity.
Simple!
Bonus Merchandise
This bonus is for individuals who learn this text by way of the tip. Do you know you could convert integer date values to Date utilizing the FORMAT()
operate similar to changing 20210910 to 10/09/2021?
Right here it’s:
DATEVALUE(FORMAT(20210910, "0000/00/00"))
You’ll be able to obtain the PBIX file from right here.
Get pleasure from!
Associated
Uncover extra from BI Perception
Subscribe to get the most recent posts despatched to your e mail.