Forum Discussion
PowerBIBeginer
Helper V
4 years agoDesign Dax formula - with Multiple Ifs condition
Hello All Power Bi Board Members, I need one help in design Dax formula. Below my formula is in Excel, I want to convert this in Dax. Could anyone help/guide me on this.. Col AO name = Request ...
v-yalanwu-msft
Community Support
4 years agoHi, PowerBIBeginer ;
If you create a column by dax ,you could change the formula like belows:
if =
SWITCH (
TRUE (),
AND ( [Request Type] = "MR", INT ( 24 * [Time Taken] ) > 8 ), "> 8 Hrs",
AND ( [Request Type] = "MR", INT ( 24 * [Time Taken] ) <= 8 ), INT ( 24 * [Time Taken] ),
AND ( [Request Type] = "MR Routine", [Time Taken] < TIMEVALUE ( "00:30:00" ) ), "< 30 Min",
[Request Type] = "MR Routine"&& [Time Taken] >= TIMEVALUE ( "00:30:00" )&& [Time Taken] < TIMEVALUE ( "01:00:00" ), "30 Min - 1 Hr",
[Request Type] = "MR Routine"&& [Time Taken] >= TIMEVALUE ( "01:00:00" )&& [Time Taken] < TIMEVALUE ( "01:30:00" ), "1 Hr - 1.5 Hr",
[Request Type] = "MR Routine"&& [Time Taken] >= TIMEVALUE ( "01:30:00" )&& [Time Taken] < TIMEVALUE ( "02:00:00" ), "1.5 Hr - 2 Hr",
[Request Type] = "MR Routine"&& [Time Taken] >= TIMEVALUE ( "02:00:00" )&& [Time Taken] < TIMEVALUE ( "02:30:00" ), "2 Hr - 2.5 Hr",
[Request Type] = "MR Routine"&& [Time Taken] >= TIMEVALUE ( "02:30:00" )&& [Time Taken] < TIMEVALUE ( "03:00:00" ), "2.5 Hr - 3 Hr",
[Request Type] = "MR Routine"&& [Time Taken] >= TIMEVALUE ( "03:00:00" )&& [Time Taken] < TIMEVALUE ( "03:30:00" ), "3 Hr - 3.5 Hr",
[Request Type] = "MR Routine"&& [Time Taken] >= TIMEVALUE ( "03:30:00" )&& [Time Taken] < TIMEVALUE ( "04:00:00" ), "3.5 Hr - 4 Hr",
AND ( [Request Type] = "MR Routine", [Time Taken] >= TIMEVALUE ( "04:00:00" ) ), "> 4 Hr",
AND ( [Request Type] = "RN", INT ( 24 * [Time Taken] ) < 8 ), "< 8 Hrs",
[Request Type] = "RN"&& INT ( 24 * [Time Taken] ) >= 8&& INT ( 24 * [Time Taken] ) < 16, "8 - 16 hrs",
[Request Type] = "RN"&& INT ( 24 * [Time Taken] ) >= 16&& INT ( 24 * [Time Taken] ) < 24, "16 - 24 hrs",
[Request Type] = "RN"&& INT ( 24 * [Time Taken] ) >= 24&& INT ( 24 * [Time Taken] ) < 36, "24 hrs - 36 hrs",
[Request Type] = "RN"&& INT ( 24 * [Time Taken] ) >= 36&& INT ( 24 * [Time Taken] ) < 48, "36 hrs - 48 hrs",
[Request Type] = "RN"&& INT ( 24 * [Time Taken] ) >= 48, "> 48 hrs",
[Request Type] = "NA", "NA",INT ( 24 * [Time Taken] ))
if you create a measure by dax , you should modify it.
if =
SWITCH (
TRUE (),
AND ( MAX ( [Request Type] ) = "MR", INT ( 24 * MAX ( [Time Taken] ) ) > 8 ), "> 8 Hrs",
AND ( MAX ( [Request Type] ) = "MR", INT ( 24 * MAX ( [Time Taken] ) ) <= 8 ), INT ( 24 * MAX ( [Time Taken] ) ),
AND (MAX ( [Request Type] ) = "MR Routine",MAX ( [Time Taken] ) < TIMEVALUE ( "00:30:00" )), "< 30 Min",
MAX ( [Request Type] ) = "MR Routine"&& MAX ( [Time Taken] ) >= TIMEVALUE ( "00:30:00" )&& MAX ( [Time Taken] ) < TIMEVALUE ( "01:00:00" ), "30 Min - 1 Hr",
MAX ( [Request Type] ) = "MR Routine"&& MAX ( [Time Taken] ) >= TIMEVALUE ( "01:00:00" )&& MAX ( [Time Taken] ) < TIMEVALUE ( "01:30:00" ), "1 Hr - 1.5 Hr",
MAX ( [Request Type] ) = "MR Routine"&& MAX ( [Time Taken] ) >= TIMEVALUE ( "01:30:00" )&& MAX ( [Time Taken] ) < TIMEVALUE ( "02:00:00" ), "1.5 Hr - 2 Hr",
MAX ( [Request Type] ) = "MR Routine"&& MAX ( [Time Taken] ) >= TIMEVALUE ( "02:00:00" )&& MAX ( [Time Taken] ) < TIMEVALUE ( "02:30:00" ), "2 Hr - 2.5 Hr",
MAX ( [Request Type] ) = "MR Routine"&& MAX ( [Time Taken] ) >= TIMEVALUE ( "02:30:00" )&& MAX ( [Time Taken] ) < TIMEVALUE ( "03:00:00" ), "2.5 Hr - 3 Hr",
MAX ( [Request Type] ) = "MR Routine"&& MAX ( [Time Taken] ) >= TIMEVALUE ( "03:00:00" )&& MAX ( [Time Taken] ) < TIMEVALUE ( "03:30:00" ), "3 Hr - 3.5 Hr",
MAX ( [Request Type] ) = "MR Routine"&& MAX ( [Time Taken] ) >= TIMEVALUE ( "03:30:00" )&& MAX ( [Time Taken] ) < TIMEVALUE ( "04:00:00" ), "3.5 Hr - 4 Hr",
AND (MAX ( [Request Type] ) = "MR Routine",MAX ( [Time Taken] ) >= TIMEVALUE ( "04:00:00" )), "> 4 Hr",
AND ( MAX ( [Request Type] ) = "RN", INT ( 24 * MAX ( [Time Taken] ) ) < 8 ), "< 8 Hrs",
MAX ( [Request Type] ) = "RN"&& INT ( 24 * MAX ( [Time Taken] ) ) >= 8&& INT ( 24 * MAX ( [Time Taken] ) ) < 16, "8 - 16 hrs",
MAX ( [Request Type] ) = "RN"&& INT ( 24 * MAX ( [Time Taken] ) ) >= 16&& INT ( 24 * MAX ( [Time Taken] ) ) < 24, "16 - 24 hrs",
MAX ( [Request Type] ) = "RN"&& INT ( 24 * MAX ( [Time Taken] ) ) >= 24&& INT ( 24 * MAX ( [Time Taken] ) ) < 36, "24 hrs - 36 hrs",
MAX ( [Request Type] ) = "RN"&& INT ( 24 * MAX ( [Time Taken] ) ) >= 36&& INT ( 24 * MAX ( [Time Taken] ) ) < 48, "36 hrs - 48 hrs",
MAX ( [Request Type] ) = "RN"&& INT ( 24 * MAX ( [Time Taken] ) ) >= 48, "> 48 hrs",
MAX ( [Request Type] ) = "NA", "NA",INT ( 24 * MAX ( [Time Taken] ) ))
If not right ,can you share simple file or more details?
Best Regards,
Community Support Team_ Yalan Wu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- PowerBIBeginer4 years ago
Helper V
Thank You so much for providing so detailed answer and explanation.
I've applied this, but I'm getting this error..
"Expressions that yield variant data-type cannot be used to define calculated columns."
Could you please let me know wht to do..