1

Я делаю электронную таблицу для своих личных финансовых нужд, и моя таблица начинается с 1 июня, субботы.

Я использую формулу =U1-WEEKDAY(U1)+6 чтобы вычислять каждую пятницу для зарплаты.

В моей таблице формула вводится там, где отображается 5/31. На последующие даты я беру камеру выше +7. Я не уверен, почему та же самая формула, которую я использовал в другом месте, заставила бы первую запись быть 5/31 только в этой таблице, день ДО начальной даты начала. 31 мая уже учтено в мае месяце.

Я был бы признателен за понимание того, что я сделал неправильно, чтобы я мог это исправить.

Формула для остальных 11 месяцев года.

Таблица проблем:
Таблица проблем

1 ответ1

1

Вы сказали, что используете формулу =U1-WEEKDAY(U1)+6 с датой в ячейке U1 которая является субботой. Чтобы ответить на ваш вопрос, вам нужно решить, что вернет WEEKDAY(U1) .

Функция Excel WEEKDAY() берет дату и возвращает число от 1 до 7, обозначающее день недели. По умолчанию WEEKDAY возвращает 1 для воскресенья и 7 для субботы. Следовательно, в вашем случае WEEKDAY(U1) вернет 7. Это превратит вашу формулу в расчет U1-7+6 .

Иногда меня сбивает с толку то, что Excel не следует истинному правилу BODMAS. Это следует за формулой слева направо, если нет скобок. Сначала он вычислит все в скобках слева направо, а затем вычислит остаток слева направо. Если бы он следовал BODMAS, он вернул бы результат U1-13 . В Excel ваша формула даст вам результат U1-1 (предыдущий день).

Если бы U1 была средой, это было бы U1-4+6 что дало бы вам 2 дня после дня в U1 . Вы видите, что делает формула?

Формула определяет, какая дата пятницы на неделе воскресенья-субботы для даты, указанной в U1 .

Если вы хотите, чтобы пятница была на неделе, следующей за датой в U1 вы можете заключить текущую формулу в квадратные скобки и добавить 7 при создании формулы =(U1-WEEKDAY(U1)+6)+7

Там будет проблема, хотя с этой формулой. Если вы измените свою начальную дату на среду, первая дата выплаты будет перенесена на пятницу следующей недели, в результате чего будет пропущен день выплаты.

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

=IF(WEEKDAY(U1)=<6,U1-WEEKDAY(U1)+6,(U1-WEEKDAY(U1)+6)+7

Более эффективная формула для использования (короткая и без функций IF() )

= U1+(7-ДЕНЬНЕД (u1,2)+5)

Параметр ,2 в функции WEEKDAY() меняет формат дня недели с воскресенья на субботу на понедельник в воскресенье с понедельника = 1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .