Forum Discussion
Converting Minutes to DDHHMM format, negative not showing correctly
- Anonymous2 years ago
Hi min-E ,
The error in your original code is due to the presence of a negative number, which can cause an error when performing math calculations. You can add a judgment condition to your original code. For example:_PartOrder to PartDelivered DHM = VAR Days = IF( [PartOrder to PartDelivered Minutes] >= 0, TRUNC([PartOrder to PartDelivered Minutes] / 1440), TRUNC((-[PartOrder to PartDelivered Minutes]) / 1440) ) VAR Hours = IF( [PartOrder to PartDelivered Minutes] >= 0, TRUNC(MOD([PartOrder to PartDelivered Minutes], 1440) / 60), TRUNC(MOD((-[PartOrder to PartDelivered Minutes]), 1440) / 60) ) VAR Minutes = IF( [PartOrder to PartDelivered Minutes] >= 0, MOD([PartOrder to PartDelivered Minutes], 60), MOD((-[PartOrder to PartDelivered Minutes]), 60) ) RETURN IF( [PartOrder to PartDelivered Minutes] >= 0, CONCATENATE( Days & "D " & Hours & "H " & Minutes & "M", "" ), CONCATENATE( (0-Days) & "D " & (0-Hours) & "H " & (0-Minutes) & "M", "" ) )If it is a negative number, it is first converted to a positive number for calculation.
And the final output is as below:
Regarding the sorting question, since your column is in your custom format, it is a text type column, and text types can't sort data from largest to smallest like the [MINUTE] column. Although you can do this by customizing the sorting, it requires you to define a sort order for each row in the table, which is quite cumbersome and I don't recommend it.
Best Regards,
Dino Tao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi min-E ,
The error in your original code is due to the presence of a negative number, which can cause an error when performing math calculations. You can add a judgment condition to your original code. For example:
_PartOrder to PartDelivered DHM =
VAR Days =
IF(
[PartOrder to PartDelivered Minutes] >= 0,
TRUNC([PartOrder to PartDelivered Minutes] / 1440),
TRUNC((-[PartOrder to PartDelivered Minutes]) / 1440)
)
VAR Hours =
IF(
[PartOrder to PartDelivered Minutes] >= 0,
TRUNC(MOD([PartOrder to PartDelivered Minutes], 1440) / 60),
TRUNC(MOD((-[PartOrder to PartDelivered Minutes]), 1440) / 60)
)
VAR Minutes =
IF(
[PartOrder to PartDelivered Minutes] >= 0,
MOD([PartOrder to PartDelivered Minutes], 60),
MOD((-[PartOrder to PartDelivered Minutes]), 60)
)
RETURN
IF(
[PartOrder to PartDelivered Minutes] >= 0,
CONCATENATE(
Days & "D " & Hours & "H " & Minutes & "M",
""
),
CONCATENATE(
(0-Days) & "D " & (0-Hours) & "H " & (0-Minutes) & "M",
""
)
)
If it is a negative number, it is first converted to a positive number for calculation.
And the final output is as below:
Regarding the sorting question, since your column is in your custom format, it is a text type column, and text types can't sort data from largest to smallest like the [MINUTE] column. Although you can do this by customizing the sorting, it requires you to define a sort order for each row in the table, which is quite cumbersome and I don't recommend it.
Best Regards,
Dino Tao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- min-E2 years agoHelper I
Dino, thank you for taking the time to explain. This absolutely makes sense.
As far as sorting, thanks for the confirmation. The minutes can be used if it's that big of a deal.