Какую формулу Excel можно использовать для вычисления второго понедельника данного месяца?


11

Какую формулу Excel можно использовать для вычисления второго понедельника данного месяца?

Вы можете предположить, что у меня есть ячейка с первым днем ​​месяца для работы.

В интересах других пользователей, не могли бы вы также объяснить, как изменить формулу, чтобы получить 1-й, 3-й или 4-й понедельник месяца, а также другие дни недели. например, третья пятница понедельника ...


Я хотел, чтобы формула вычисляла вторую среду текущего месяца и года, чтобы использовать ее для автоматического добавления даты собрания в лист регистрации для ежемесячного собрания. Я создал формулу ниже. =DATE(YEAR(NOW()),MONTH(NOW()),1+7*2)-WEEKDAY(DATE(YEAR(NOW()),MONTH(NOW()),8-4))

Ответы:


18

Вот что я нашел с помощью быстрого поиска:

Как правило, вы можете получить n-й день месяца с помощью этой формулы

=DATE(B2,A2,1+7*n)-WEEKDAY(DATE(B2,A2,8-xday)) 

где год - в В2, а месяц (как число от 1 до 12) - в А2, а где xday - это число, представляющее день недели (1 = от Солнца до 7 = Сб), поэтому для 1-й субботы это становится

=DATE(B2,A2,1+7*1)-WEEKDAY(DATE(B2,A2,8-7)) 

или на четвертый четверг

=DATE(B2,A2,1+7*4)-WEEKDAY(DATE(B2,A2,8-5)) 

Итак, если я читаю это правильно, 2- й понедельник месяца

=DATE(B2,A2,1+7*2)-WEEKDAY(DATE(B2,A2,8-2)) 

( кредит, где кредит должен )


1
Работает отлично, насколько я могу судить! Большое спасибо
Сильно Нерегулярное

0

= ЕСЛИ ((НЕДЕЛЯ (А1)> 3), (А1 + (17-НЕДЕЛЯ (А1))), (А1 + (10-НЕДЕЛЯ (А1))))

А1 первый день месяца


Можете ли вы объяснить больше?
Яс

Не нужно никаких объяснений - это не работает !
robinCTS

0

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

A2 = месяц
B2 = год
C2 = день недели (1 - 7, 1 = воскресенье)
D2 = "число" (3 = 3-й день и т. Д.)

SO 2-го понедельника будет A2 = текущий месяц, B2 = текущий год, C2 = 2 (для понедельника) и D2 = 2 (для 2-го понедельника)

F2 = =IF(MONTH(IF((WEEKDAY(VALUE(($A2&"/01/"&$B2))))=$C2,(VALUE(($A2&"/01/"&$B2)))+(($D2*7)-7),IF((WEEKDAY(VALUE(($A2&"/01/"&$B2))))<$C2,((VALUE(($A2&"/01/"&$B2)))+($C2-(WEEKDAY(VALUE(($A2&"/01/"&$B2)))))+(($D2*7)-7)),(VALUE(($A2&"/01/"&$B2)))+($C2-(WEEKDAY(VALUE(($A2&"/01/"&$B2)))))+7+(($D2*7)-7))))=A2,IF((WEEKDAY(VALUE(($A2&"/01/"&$B2))))=$C2,(VALUE(($A2&"/01/"&$B2)))+(($D2*7)-7),IF((WEEKDAY(VALUE(($A2&"/01/"&$B2))))<$C2,((VALUE(($A2&"/01/"&$B2)))+($C2-(WEEKDAY(VALUE(($A2&"/01/"&$B2)))))+(($D2*7)-7)),(VALUE(($A2&"/01/"&$B2)))+($C2-(WEEKDAY(VALUE(($A2&"/01/"&$B2)))))+7+(($D2*7)-7))),"error")

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.