【问题标题】:Enter start and end dates, divide total days by months (minus holidays)?输入开始和结束日期,将总天数除以月数(减去假期)?
【发布时间】:2014-07-29 11:37:30
【问题描述】:

使用 Excel 2013,我试图将一段时间内的总天数除以一个月,不包括特定的假期和周末。总数将根据用户输入的开始日期和结束日期计算。我可以使用 NETWORKDAYS 计算该期间的总天数。

=NETWORKDAYS(A3, B3, Holidays!$A$2:$A$50)

我还可以使用 NETWORKDAYS 计算每个月的总天数。下面是我一月份的例子。

=NETWORKDAYS(DATE(2014,1,1), DATE(2014,1,31), Holidays!$A$2:$A$50)

我还没有构建参数来按月解释用户输入的日期。为了说明,这是我想要完成的屏幕截图,但带有公式:

我有数百个案例要输入,我希望我可以计算带有开始和结束日期的月份,而不是手动输入它们。

有什么建议吗?感谢您的宝贵时间。

【问题讨论】:

  • 他们都有相同的列?
  • 我会问与@Fabricator 相同的问题,列的顺序是否始终相同? (即Aug -> Jun
  • 是的。它们基于学术日历。

标签: excel excel-formula


【解决方案1】:

以下内容似乎对我有用,尽管它有点粗糙。请注意,要完成这项工作,您的每个列标题都应该是当月的第一天(如 2013 年 8 月 1 日)。但是您可以对这些日期进行格式化,以便它们仅显示为月份的缩写。

公式放入 D3 然后拉过去拉下:

=IF((IF(AND($A3<D$1,$B3>(E$1-1)),NETWORKDAYS(D$1,(E$1-1),Holidays!$A$2:$A$50),IF(AND($A3>D$1,$B3>(E$1-1)),NETWORKDAYS($A3,(E$1-1),Holidays!$A$2:$A$50),IF(AND($A3<D$1,$B3<(E$1-1)),NETWORKDAYS(D$1,$B3,Holidays!$A$2:$A$50),IF(AND($A3>D$1,$B3<(E$1-1)),NETWORKDAYS($A3,$B3,Holidays!$A$2:$A$50))))))<0,0,(IF(AND($A3<D$1,$B3>(E$1-1)),NETWORKDAYS(D$1,(E$1-1),Holidays!$A$2:$A$50),IF(AND($A3>D$1,$B3>(E$1-1)),NETWORKDAYS($A3,(E$1-1),Holidays!$A$2:$A$50),IF(AND($A3<D$1,$B3<(E$1-1)),NETWORKDAYS(D$1,$B3,Holidays!$A$2:$A$50),IF(AND($A3>D$1,$B3<(E$1-1)),NETWORKDAYS($A3,$B3,Holidays!$A$2:$A$50)))))))

【讨论】:

  • 这可能是D3的公式?
  • 果然。谢谢!对其进行了编辑以解决该问题。
  • 非常感谢@Liza!这已经是一个巨大的帮助。但是,该公式似乎在结束日期方面存在问题,如下所示:i.imgur.com/lyMea9R.png 我想知道是否可以以某种方式从 Total Days 列中减去差异。 '=NETWORKDAYS(A2, B2, 假期!$A$2:$A$50)'
  • 忽略我之前的评论。我通过添加 7 月的列标题解决了我的问题。在上一张截图中,我还稍微调整了你的公式,不知道更好,但我恢复了你原来的。问题解决了!再次感谢@Liza。我感激不尽。 :)
  • 很高兴听到它成功了!这是一个很好的观点,最后一列将是一个问题。正如您所提到的,在学年结束后的下个月添加一列应该可行。您还可以将原始公式中 E$1-1 的所有引用替换为 6 月列中的 DATE(2014,6,30)。
猜你喜欢
  • 1970-01-01
  • 2021-11-11
  • 2023-03-10
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多