2013-09-16 2 views
0

Я создаю еженедельный календарь в excel для модели, над которой я работаю, которая будет иметь значение 1 в течение недели между датами (датой начала и датой окончания), что пользовательские входы и нуль за пределами этих дат. Поскольку календарь является недельным календарем, функция в настоящее время сравнивает дату ввода пользователем (которая может быть любой датой года) в первый день недели (неделя, начинающаяся в воскресенье). Проблема заключается в том, что функция будет работать только для дат ввода, которые не относятся к первым четыре-пяти дням месяца, поэтому, если пользователь скажет, что 1 января, как дата начала, функция не будет работать.Функция пользовательского календаря Excel не работает должным образом

Что я пытаюсь сделать, это заставить его работать на любую дату.

В настоящее время функция вычисляет значение ячейки, добавляя значение предыдущей недели (так что если дата была после даты начала, но до даты окончания предыдущей недели будет иметь значение 1), а затем условно следующий отчет IF:

  1. Если дата начала в том же месяце, что и в первый день текущей недели; И
  2. Если значение дня начала даты меньше, чем дневное значение первого дня текущей недели + 6 (т. Е. Первое условие, чтобы убедиться, что оно находится на той же неделе); И
  3. Если день значение даты начала больше, чем значение дня первого дня текущей недели (то есть второе условие, чтобы убедиться, что он находится в той же неделе)

Если ПЧ оператор разрешает быть ИСТИННЫМ, то он добавляет 1. Проблема заключается в том, что дата начала в первые несколько дней месяца заключается в том, что оператор IF не разрешает быть истинным. Я думаю, это потому, что первый день текущей недели не в том же месяце.

Ниже приведен один пример функции:

=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) 

Второе ЕСЛИ утверждение в функции для конечной даты и имеет такую ​​же проблему, как дата начала делает.

Настоятельно оцените любую помощь.

Примечание: даты соответствуют соответствующим датам. :)

+0

Я думаю, что скриншот (или образец файла) поможет описать вашу проблему и желаемый результат. Я попытался использовать некоторые значения, но, похоже, он не работает, как вы описываете. :( – Jerry

ответ

1

Excel имеет две функции, которые должны позволить вам обойти весь чек ... Они WEEKDAY и WEEKNUM.

WEEKDAY возвращает день недели, на основе того, когда начинается ваша неделя ...

Например, = WEEKDAY (ДАТА (2013,9,16), 1) возвращает 2, т.к. сегодня (понедельник) - второй день недели, когда неделя начинается в воскресенье.

WEEKNUM возвращает количество недель, прошедших в этом году ...

Например, = WEEKNUM (ДАТА (2013,9,16), 1) возвращает 38, потому что сегодня (16 сентября 2013 г.) - 38-я неделя 2013 года, если вы начнете отсчет по воскресеньям ...

Используя эти проверки, вы сможете найти границы недельного ввода календаря без всех проверок IF.

Удачи вам!

+0

Удивительно, прекрасно работает. –

Смежные вопросы