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!Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!
Hi everyone,
I need your assistance please, I am barely new using PBI and I have a situation with dates. There is a template of excel fulfilled by people who manage a process, so I required to get the amount of days it takes to approve a process. The problem is they have to enter manually the date, some of them entered the date in a format which is not correct, and others do it correctly.
This is an example I created, so I have I tried to solve it with Power BI, but with no succees. I finally do it manually everytime I require to update the report, just by adding a column with difference of days which result should not take longer than a month:
| Date of registration | Product | Date of approval | Comments | Format entered |
| 04/05/2022 | 1 | 05/05/2022 | Correct | DD-MM-YYYY |
| 09/08/2022 | 2 | 08/10/2022 | Wrong | MM-DD-YYYY |
| 04/08/2022 | 3 | 09/04/2022 | Wrong | MM-DD-YYYY |
| 01/02/2022 | 4 | 05/02/2022 | Correct | DD-MM-YYYY |
| 09/05/2022 | 5 | 05/09/2022 | Wrong | MM-DD-YYYY |
| 09/07/2022 | 6 | 10/07/2022 | Correct | DD-MM-YYYY |
| 03/05/2022 | 7 | 05/10/2022 | Wrong | MM-DD-YYYY |
| 13/02/2022 | 8 | 14/02/2022 | Correct | DD-MM-YYYY |
| 21/04/2022 | 9 | 22/04/2022 | Correct | DD-MM-YYYY |
Example of manual solution for first example:
Date of approval - date of registration = amount of days
05-05-2022 - 04-05-2022 = 1
Thanks in advance!!
Edgardo Y.
Solved! Go to Solution.
Hi @Eddistoff ,
Add this as a new custom column to restate the approval date in the correct format:
let
__cDate = Date.AddMonths(Date.From([Date of registration]), 1)
in
if Date.From([Date of approval]) < Date.From([Date of registration]) or Date.From([Date of approval]) > __cDate
then Text.Combine(
{
Text.Middle([Date of approval], 3, 2),
Text.Start([Date of approval], 2),
Text.End([Date of approval], 4)
},
"/"
)
else [Date of approval]
From here you can change the data type of your new column to Date Type and perform your calculation.
Example as working query:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("jZBBC8IwDIX/S88bTdLMrWd33Vlk7CTizUHx/+Mrri4HpSuENo98fUnm2ZF66ryQiGscI5DtwnlN6X574TWO7TS1Vxy3NMCip6FU5UDGVIRLWp8P3CDA7ZAaKGQIv2gNYk9SanRrUA41+B2j27BY8wLUl5pTXggZ4b9XMF79x6u6DA5mjCF76ZG5hM3KYl6+GOE3trwB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Date of registration" = _t, Product = _t, #"Date of approval" = _t, #"Comments " = _t, #"Format entered" = _t]),
chgRegDateType = Table.TransformColumnTypes(Source,{{"Date of registration", type date}}),
addDtApproval =
Table.AddColumn(
chgRegDateType,
"dtApproval", each
let
__cDate = Date.AddMonths(Date.From([Date of registration]), 1)
in
if Date.From([Date of approval]) < Date.From([Date of registration]) or Date.From([Date of approval]) > __cDate
then Text.Combine(
{
Text.Middle([Date of approval], 3, 2),
Text.Start([Date of approval], 2),
Text.End([Date of approval], 4)
},
"/"
)
else [Date of approval]
)
in
addDtApproval
Working query output:
Pete
Proud to be a Datanaut!
Thanks a lot for yout help!!!!
Hi @Eddistoff ,
Add this as a new custom column to restate the approval date in the correct format:
let
__cDate = Date.AddMonths(Date.From([Date of registration]), 1)
in
if Date.From([Date of approval]) < Date.From([Date of registration]) or Date.From([Date of approval]) > __cDate
then Text.Combine(
{
Text.Middle([Date of approval], 3, 2),
Text.Start([Date of approval], 2),
Text.End([Date of approval], 4)
},
"/"
)
else [Date of approval]
From here you can change the data type of your new column to Date Type and perform your calculation.
Example as working query:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("jZBBC8IwDIX/S88bTdLMrWd33Vlk7CTizUHx/+Mrri4HpSuENo98fUnm2ZF66ryQiGscI5DtwnlN6X574TWO7TS1Vxy3NMCip6FU5UDGVIRLWp8P3CDA7ZAaKGQIv2gNYk9SanRrUA41+B2j27BY8wLUl5pTXggZ4b9XMF79x6u6DA5mjCF76ZG5hM3KYl6+GOE3trwB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Date of registration" = _t, Product = _t, #"Date of approval" = _t, #"Comments " = _t, #"Format entered" = _t]),
chgRegDateType = Table.TransformColumnTypes(Source,{{"Date of registration", type date}}),
addDtApproval =
Table.AddColumn(
chgRegDateType,
"dtApproval", each
let
__cDate = Date.AddMonths(Date.From([Date of registration]), 1)
in
if Date.From([Date of approval]) < Date.From([Date of registration]) or Date.From([Date of approval]) > __cDate
then Text.Combine(
{
Text.Middle([Date of approval], 3, 2),
Text.Start([Date of approval], 2),
Text.End([Date of approval], 4)
},
"/"
)
else [Date of approval]
)
in
addDtApproval
Working query output:
Pete
Proud to be a Datanaut!
Vote for your favorite vizzies from the Power BI World Championship submissions!
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 15 | |
| 11 | |
| 11 | |
| 8 | |
| 6 |