Список 1 и 3 понедельника в Excel - PullRequest
0 голосов
/ 02 октября 2019

В Excel я хотел бы получить список 1-го и 3-го понедельника каждого месяца, скажем, следующих шести месяцев после сегодняшнего дня.

Используя подход на основе формул, я могу найти 1-е или3-й понедельник после сегодняшнего дня. Я застрял при попытке заполнить список после этого. В частности, задача состоит в том, чтобы учесть месяцы с 5 понедельниками в них. Формулы становятся очень сложными очень быстро!

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Попробуйте это:

На A1 укажите первый день месяца. На месте A2: =EOMONTH(A1,0)+1

На месте B1 =A1+MOD(8-WEEKDAY(A22,2),7).

На месте C1 =B1+14

Перетащите раскрывающийся список.

Первыйстолбец принимает первый день одного месяца и месяца подряд, столбец B возвращает первый понедельник, а столбец C возвращает третий понедельник этого месяца.

Если вы ищете 5-йпонедельник:

на месте D1: =IF(A1+MOD(8-WEEKDAY(A22,2),7)+28<EOMONTH(A1,0)+1,A1+MOD(8-WEEKDAY(A22,2),7)+28,"")

0 голосов
/ 02 октября 2019

Это решение, которое у меня есть до сих пор:

Private Sub Auto_Open()

Dim i, mday As Integer
Dim row, col As Integer
Dim d As Date
Dim min As Integer

min = 14    'Minimum set up period

col = 1     'Column to put results in
row = 2     'Row to start from


d = Date + min + 9 - Weekday(Date) 'Find Monday after Minimum set up period

Worksheets("options").Activate

For i = 1 To 26     'Results up to 26 weeks in future
    mday = day(d)
    If (mday - 7 <= 0) Then                                'First week
        Cells(row, col).Value = d
        row = row + 1
    ElseIf (mday - 14 > 0 And mday - 21 <= 0) Then        'Third week
        Cells(row, col).Value = d
        row = row + 1
    End If
    d = d + 7   '+1 week
    Next

Worksheets("New Starter").Activate

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...