Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Hi,
I was wondering how you would input a string of text into a new column if submission date is between two dates (or greater than start date and smaller than end date).
I've heard about datesbetween, but the syntax seems to mention CALCULATE, and I'm not calculating anything, just trying to filter for if the submit date is late or not. (Visual date slicers would be too tedious as well).
Thanks!
Solved! Go to Solution.
Hey,
please be aware that the Submitted On datetime is greater than the End date.
Where 3/03/2019 10:27:55 PM is close to the 4th of March
the end date 3/03/2019 12:00:00 AM marks midnight between the 2nd and 3rd of march.
If the time is not relevant you might consider to extract the date part from all of your columns or just add 1 day to the End column.
Regards,
Tom
@Anonymous
As @TomMartens also suggested, in your case you can do the calculation using date part only
so as a custom column try
=if Date.From([Submitted On]) >= Date.From([Start]) and Date.From([Submitted On]) <= Date.From([End]) then "on time" else "late"
Hey,
from the screenshot you posted it's clear that you are looking for a solution in M meaning Power Query.
The formula has to look similar to this:
if [Datum] >= [ShiftStart] and [Datum] <= [ShiftEind] then "this" else "that"
Just use the column reference [Submitted On] after the and.
The functions DATESBETWEEN and CALCULATE are DAX functions, even if both Power Query / M and DAX are able to create a calculated column that can be used for filtering in the final data model, they are different and both have their own subtleties. In this specific case it does not matter if you use Power Query / M or DAX.
Regards,
Tom
@TomMartens Ah right, thanks for the clarification. I'm completely new to Power BI, and it's really been doing my head in.
@Anonymous
Just make this small amendment to your formula
=if [submitted on] >[Start] and [submitted on] <[End]
@Zubair_Muhammad Thanks for the quick reply! I've tried that, and "late" and "on time" do appear - except not in the right way. I know for a fact that in this set of data, no one submitted it late:
@Anonymous
I am little confused.
The yellow highlighted "Submitted on" figures in your picture above appear to be between Start and End dates..So the formula should return late. Isn't it?
@Zubair_Muhammad My apologies, I accidentally switched the two - but I do have another follow-up question about inclusivity - adding the equal signs to make it "greater / less than or equal to" doesn't seem to include submissions as on time if they submitted on the last day of the date range?
@Anonymous
As @TomMartens also suggested, in your case you can do the calculation using date part only
so as a custom column try
=if Date.From([Submitted On]) >= Date.From([Start]) and Date.From([Submitted On]) <= Date.From([End]) then "on time" else "late"
Thanks for your help guys! Works perfectly.
Hey,
please be aware that the Submitted On datetime is greater than the End date.
Where 3/03/2019 10:27:55 PM is close to the 4th of March
the end date 3/03/2019 12:00:00 AM marks midnight between the 2nd and 3rd of march.
If the time is not relevant you might consider to extract the date part from all of your columns or just add 1 day to the End column.
Regards,
Tom
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.
User | Count |
---|---|
94 | |
92 | |
82 | |
71 | |
49 |
User | Count |
---|---|
143 | |
121 | |
112 | |
58 | |
57 |