【问题标题】:Calculate number of specific days in range计算范围内的特定天数
【发布时间】:2013-05-29 23:19:25
【问题描述】:

如何计算某个范围内一周中特定日期的(小数)计数?例如,如果范围是从 6 月 3 日星期一下午 12:00 开始。到 6 月 4 日星期二 12:00 P.M.,我想计算星期一的数量,公式将返回结果 0.5。

我已经找到了整数天数的公式:

=SUM(INT((WEEKDAY($B2-x)+$D2-$B2)/7))

其中x 是感兴趣的星期几(1 到 7)。当然,需要对其进行修改以返回上述结果。我该怎么做?

【问题讨论】:

  • 您是指 6 月 4 日星期二,对吧? ;)
  • 另外,如果范围是从Monday, 3 June 12:00 PMMonday, June 10 12:00 PM,结果应该是什么?应该是1 星期一吗?
  • @Jerry 对你的两个问题都是肯定的。

标签: excel date-arithmetic dayofweek


【解决方案1】:

您可以使用此版本获取星期一的总数(包括开始和结束日期)(您不需要 SUM)

=INT((WEEKDAY($B2-2)+INT($D2)-INT($B2))/7)

...然后进行调整以考虑开始/结束日期,例如

=INT((WEEKDAY($B2-2)+INT($D2)-INT($B2))/7)-IF(WEEKDAY($D2)=2,1-MOD($D2,1))-IF(WEEKDAY($B2)=2,MOD($B2,1))

我真的不推荐它(它更需要资源),但这个版本应该会给你同样的结果

=SUMPRODUCT((TEXT(B2+(ROW(INDIRECT("1:"&ROUND((D2-B2)*1440,0)))-0.5)/1440,"ddd")="mon")+0)/1440

它测试日期范围内的每一分钟以确定它是否在星期一(假设您没有精确到秒)

【讨论】:

  • 我不明白第二个答案应该得到什么?如果您使用从 6 月 3 日星期一下午 12:00 到 6 月 10 日星期一下午 12:00 的示例数据。第一个公式返回 2,一个用于开始星期一,一个用于结束星期一,而您的第二个公式返回 1,它返回星期一的开始还是结束?
  • 第一个星期一有效返回 0.5,第二个星期一返回 0.5 - 第一个公式返回星期一的总数,但它不考虑开始或结束时间,因此第二个版本减去小时其中开始或结束日期是星期一。
  • 我只是看不到返回 0.5 有什么用。
  • 问题是“我如何计算一个范围内一周中特定日期的(小数)计数”,所以我假设 Jeff 想要准确计算该范围内有多少个星期一考虑到部分的,例如如果开始时间/日期为 6 月 3 日 15:00,结束时间/日期为 6 月 3 日 21:00,则答案为 0.25(所有范围均为星期一)。如果开始时间相同,但结束时间是 6 月 24 日星期一 18:00,则开始日期为 9 小时,整个星期一为 2 小时,结束日期为 18 小时,总共为 3.125
  • @Jeff_Axelrod 这与我发布的公式不同 - 在公式的第一部分中需要在 D6 和 B6 周围有 INT 函数(仅从这些日期/时间值中获取日期) .如果您使用建议的确切公式,您应该会得到预期的结果
猜你喜欢
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
  • 1970-01-01
  • 2018-04-29
  • 2016-09-08
  • 1970-01-01
相关资源
最近更新 更多