Excel 如何在PowerQuery中获取以下函数中的小数?

Excel 如何在PowerQuery中获取以下函数中的小数?,excel,powerbi,powerquery,m,Excel,Powerbi,Powerquery,M,我有以下疑问,我有这个函数来计算两个日期之间的日期,但是这些日期有小时,我一直在使用这个函数来获取小数,但是我仍然没有得到小数,我尝试了(Number.Round),(Decimal.From) 请按以下步骤操作: = (InitialDate as datetime, FinalDate as datetime ) as number => let DaysBetweenDates = Duration.Days(FinalDate-InitialDate), DaysList = L

我有以下疑问,我有这个函数来计算两个日期之间的日期,但是这些日期有小时,我一直在使用这个函数来获取小数,但是我仍然没有得到小数,我尝试了(Number.Round),(Decimal.From)

请按以下步骤操作:

= (InitialDate as datetime, FinalDate as datetime ) as number => 
let
DaysBetweenDates = Duration.Days(FinalDate-InitialDate),
DaysList = List.DateTimes(List.Min({InitialDate,FinalDate}),Number.Abs(Decimal.From(DaysBetweenDates))+1.00, Duration.From(Decimal.From(2.00))),
WeekDaysList = List.Select(DaysList, each (Date.DayOfWeek(_, Day.Monday) < 5) ),
WorkingDays = (if DaysBetweenDates < 0.00 then -1.00 else 1.00) * List.Count(WeekDaysList)
in
WorkingDays
=(InitialDate作为datetime,FinalDate作为datetime)作为数字=>
让
DaysBetween Dates=持续时间.天(最终日期初始日期),
DaysList=List.DateTimes(List.Min({InitialDate,FinalDate}),Number.Abs(Decimal.From(daysbetweentDates))+1.00,Duration.From(Decimal.From(2.00)),
WeekDaysList=列表。选择(DaysList,每个(Date.DayOfWeek(u,Day.Monday)<5)),
工作日=(如果日期之间的天数<0.00,则-1.00,否则1.00)*列表.计数(工作日列表)
在里面
工作日

假设在您的评论中您的
0.80
天数不正确(并且应该是
0.92
天),并且您确实在寻找天数和一天的分数,您可以简单地使用:

(InitialDate as datetime, FinalDate as datetime ) as number => 

let
    WorkingDays = Number.From(FinalDate) - Number.From(InitialDate)
in
    WorkingDays
如果要对结果进行四舍五入,还可以使用
Number.Round

例如:


如果这不是您想要的,您需要更具体。

查看
持续时间。TotalDays
作为
持续时间的可能替代。Days
您不显示任何内容来指示您想要的结果。你说的“取小数”是什么意思?如果不知道给定特定输入的输出期望值,则很难给出建议。您正在使用的函数没有小数作为输出。你需要提供更多的细节来解释。@RonRosenfeld谢谢你的评论,我需要的输出是,当我有两个日期和不同的时间时,我需要该期间和时间的天数输出示例:1/11/21 7:00 am到1/12/21 5:00 am=输出0.80天您使用什么逻辑来获得这两个0.80天的日期时间之间的差的结果?我计算了22小时的差异,但不明白如何计算0.80天的结果。它不是22/24。一旦点击
analysisservices
(即:视觉、DAX、导入后的任何内容),就没有
duration
数据类型,因此,如果OTU将其转换为X秒或X毫秒,则无法表示大于24小时的持续时间。电源查询可以。
Number.Round(Number.From(FinalDate) - Number.From(InitialDate),3)