The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
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!
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.