【问题标题】:To find number of hours between start date and end date in excel or power bi?在 excel 或 power bi 中查找开始日期和结束日期之间的小时数?
【发布时间】:2020-10-01 03:28:05
【问题描述】:

我有一个包含两个日期列的数据。我在从 FEEDOFF 日期中减去 FEEDON 后计算的 SHUT HOURS 列。我需要有关每天关闭时间的信息。如果我只是从 FEEDOFF 中减去 FEEDON,它将给我所有天的总小时数。但我想要每一天。有什么方法可以从 FEEDOFF 和 FEEDON 日期算起每天的 SHUT HOURS 数?

我想要的输出如下图所示。例如,对于第一行,我希望不同单元格中的所有日期对应于不同的小时数。有什么办法吗?

【问题讨论】:

  • 如果您举例说明您想要达到的结果,将会有所帮助。 72不是你想要的数字;那是什么?
  • 嗨... 72 是从 2020 年 9 月 19 日到 2020 年 9 月 22 日的总小时数。我想要的是 19/09/2020、20/09/2020、21/09/2020 和 22/09/2020 的小时数。有没有办法做到这一点?还是我缺少一些信息?
  • 是的,您错过了告诉我们您的 Excel 网格中的外观。如果两个日期之间的天数不同,所有这些结果会去哪里?例如,您的行有 714 小时。那应该是什么样子?为您的数据样本手动模拟它。然后编辑您的问题并添加该模型的屏幕截图。
  • 根据定义,如果关机跨越两个以上的日期,则中间的日子总是有 24 小时。您可能只需要分别计算第一天和最后一天。
  • Hii....excel中有没有公式可以计算这个?

标签: excel powerbi-desktop


【解决方案1】:

这是 ARRAY (CSE) 公式。粘贴公式后按 Control+Shift+Enter。

G1 中的公式是

=ABS(IF(COUNTIFS($A$2:$A$4,"<="&E1+86399/86400,$B$2:$B$4,">="&E1)>0,1,0)*IFERROR(IF(MATCH(E1,INT($A$2:$A$4),0)=MATCH(E1,INT($B$2:$B$4),0),INDEX($B$2:$B$4,MATCH(E1,INT($B$2:$B$4),0),1)-INDEX($A$2:$A$4,MATCH(E1,INT($A$2:$A$4),0),1),""),IFERROR(INDEX($A$2:$A$4,MATCH(E1,INT($A$2:$A$4),0),1)-E1-1,1)*IFERROR(INDEX($B$2:$B$4,MATCH(E1,INT($B$2:$B$4),0),1)-E1,1))*24)

再次粘贴太长无法滚动

=ABS(IF(COUNTIFS($A$2:$A$4,"&lt;="&amp;E1+86399/86400,$B$2:$B$4,"&gt;="&amp;E1)&gt;0,1,0)*IFERROR(IF(MATCH(E1,INT($A$2:$A$4),0)=MATCH(E1,INT($B$2:$B$4),0),INDEX($B$2:$B$4,MATCH(E1,INT($B$2:$B$4),0),1)-INDEX($A$2:$A$4,MATCH(E1,INT($A$2:$A$4),0),1),""),IFERROR(INDEX($A$2:$A$4,MATCH(E1,INT($A$2:$A$4),0),1)-E1-1,1)*IFERROR(INDEX($B$2:$B$4,MATCH(E1,INT($B$2:$B$4),0),1)-E1,1))*24)

得到this link的帮助

如果日期重叠,例如您的第四行与第一行和第三行重叠,这将失败。

【讨论】:

  • 请注意,如果答案是 6.50,那么它是 6 小时 30 分钟,而不是 6 小时 50 分钟。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多