Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel自定义日历功能无法正常工作_Excel_Excel Formula_Excel 2010 - Fatal编程技术网

Excel自定义日历功能无法正常工作

Excel自定义日历功能无法正常工作,excel,excel-formula,excel-2010,Excel,Excel Formula,Excel 2010,我已经在excel中为我正在处理的模型创建了一个周日历,在用户输入的日期(开始日期和结束日期)之间的周内,该日历的值为1,在这些日期之外为零。由于日历是周日历,该函数当前将用户输入的日期(可以是一年中的任何日期)与一周的第一天(从星期日开始的一周)进行比较问题是,该功能只在输入日期不在该月的前四天或五天时工作,因此如果用户将1月1日作为开始日期,该功能将不工作 我想做的是让它在任何日期都有效 当前,函数将通过添加前一周的值(因此,如果日期在开始日期之后但在结束日期之前,前一周的值将为1)计算单元

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

我想做的是让它在任何日期都有效

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

  • 如果开始日期与当前周的第一天在同一个月内;及
  • 如果开始日期的日值小于当前周第一天的日值+6(即确保其在同一周的第一个条件);及
  • 如果开始日期的日值大于当前周第一天的日值(即确保其在同一周的第二个条件)
  • 如果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)
    
    =AG263+IF(和(AH$260=月(假设)$B118),天(AH$262)+6>=
    (天(假设!$B118)),天(AH$262)
    =天(假设!$B118)),1,0)+如果(和(AH$260=月(假设!$B125)),
    
    DAY(AH$262)+6>=(DAY(假设!$B125)),DAY(AH$262)Excel有两个函数可以让您绕过整个检查…它们是工作日周数

    WEEKDAY返回一周中的某一天,基于您的一周开始的时间

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

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

    例如,=WEEKNUMDATE(2013,9,16),1)返回38,因为今天(2013年9月16日)是2013年的第38周,如果你开始计算周日

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

    祝你好运!

    我认为屏幕截图(或文件示例)有助于描述你的问题和期望的结果。我尝试使用了一些值,但似乎没有如你所描述的那样有效:(