【问题标题】:Excel custom calendar function not working properlyExcel自定义日历功能无法正常工作
【发布时间】:2013-09-16 06:14:20
【问题描述】:

我一直在 excel 中为我正在处理的模型创建一个周历,在用户输入的日期(开始日期和结束日期)之间的几周内,其值为 1,而在这些日期。由于日历是周历,因此该函数当前将用户输入的日期(可以是一年中的任何日期)与一周的第一天(从星期日开始的一周)进行比较。 问题是,该功能仅适用于不在一个月的前四或五天的输入日期,因此如果用户将 1 月 1 日作为开始日期,则该功能将不起作用.

我想做的是让它适用于任何日期。

目前,该函数将通过添加前一周的值来计算单元格值(因此,如果日期在开始日期之后但在结束日期之前,前一周的值为 1),然后以以下 IF 语句:

  1. 如果开始日期与当周的第一天在同一月份;和
  2. 如果开始日期的天值小于当周第一天的天值+6(即第一个条件确定是否在同一周);和
  3. 如果开始日期的天数值大于当周第一天的天数值(即第二个条件确定是否在同一周)

如果 IF 语句解析为 TRUE,则它加 1。问题在于,当月的前几天开始日期是 IF 语句不解析为 true。我认为这是因为本周的第一天不在同一个月。

以下是该函数的一个示例:

=AG263+IF(AND(AH$260=MONTH(Assumptions!$B118),DAY(AH$262)+6>=
(DAY(Assumptions!$B118)),DAY(AH$262)
=DAY(Assumptions!$B118)),1,0)+IF(AND(AH$260=MONTH(Assumptions!$B125),
DAY(AH$262)+6>=(DAY(Assumptions!$B125)),DAY(AH$262)<=DAY(Assumptions!$B125))
,-1,0)

函数中的第二个 IF 语句是结束日期,与开始日期有同样的问题。

非常感谢任何帮助。

注意:日期是正确的日期。 :)

【问题讨论】:

  • 我认为屏幕截图(或文件示例)将有助于描述您的问题和期望的结果。我尝试使用一些值,但它似乎不像你描述的那样工作。 :(

标签: excel excel-formula excel-2010


【解决方案1】:

Excel 有两个函数可以让您绕过整个检查...它们是 WEEKDAYWEEKNUM

WEEKDAY 根据您一周的开始时间返回星期几...

例如,=WEEKDAY(DATE(2013,9,16), 1) 返回 2,因为今天(星期一)是一周的第二天一周从星期日开始。

WEEKNUM 返回一年中过去的周数...

例如,=WEEKNUM(DATE(2013,9,16), 1) 返回 38,因为今天(2013 年 9 月 16 日)是第 38 周2013 年,如果你开始数星期天……

使用这些检查,您应该能够找到日历输入的星期的边界,而无需所有 IF 检查。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 2018-07-13
    • 1970-01-01
    • 2020-10-12
    相关资源
    最近更新 更多