Изменение значения ячейки в зависимости от месяца

Изменение значения ячейки в зависимости от месяца

Например, когда я ввожу месяц в ячейку, я пытаюсь получить определенные даты недели с первого по последний день месяца:

Если ячейка «I6» содержит «март» или любой другой месяц:

                      " MARCH "

затем:

  • ячейка "F10" = 1-марта для-Солнце(первое воскресенье месяца)
  • Ячейка «F11» = 5-мар для -четверг (первый четверг месяца)
  • Ячейка "F12" = 8 марта для -Солнце(второе воскресенье месяца и т.д.)
  • Ячейка "F13" =12-мар для -четверг

Возможно ли это? Я искал на разных сайтах, но безуспешно, большое спасибо.

решение1

Вы также можете использовать это:

введите описание изображения здесь

Как это работает:

  • В ячейке K23введите 1-е число месяца (как я использовал 02/01/2020, формат — MM/DD/YYYY).
  • Подать заявку MMM YYна ячейку.
  • Формула в ячейке K25:

=K$23+MOD(7-WEEKDAY(K$23,2),7)

  • Далее, формула в ячейке K26:

=K$23+MOD(4-WEEKDAY(K$23,2),7)

Примечание:В приведенной выше формуле 7& 4представляет воскресенье и четверг, и вы можете редактировать их по своему усмотрению.

  • Окончательная формула в ячейке K27и заполните ее:

    =IFERROR(IF(AND(MONTH(K26)=MONTH(K$23),COUNT(J$25:J25)=7),"",K25+7),"")
    
  • Теперь введите эту формулу в ячейку J25и заполните ее.

=IF(ISBLANK(K25),"",K25)


Отредактировано:

ОП поднял хороший вопрос о том, как управлять датами, если и когдаСнедень &Тчетверг больше 8 (как в мае, в августе воскресенья 5, а четверги 4).

введите описание изображения здесь

  • Введите эту формулу в ячейку L25:

    =SUMPRODUCT(N(TEXT(ROW(INDIRECT(K25&":"&EOMONTH(K25,0))),"ddd")="Sun"))+SUMPRODUCT(N(TEXT(ROW(INDIRECT(K25&":"&EOMONTH(K25,0))),"ddd")="Thu"))
    

Примечание. Это касается воскресенья и четверга, где Sunи Thuможно редактировать.

  • Формула в K27:

=K$25+MOD(7-WEEKDAY(K$25,2),7)

  • Формула в ячейке k28:

=K$25+MOD(4-WEEKDAY(K$25,2),7)

  • Введите формулу в ячейку K29:

      =IFERROR(IF(AND(MONTH(K28)=MONTH(K$25),COUNT(J$27:J27)>=(L$25-1)),"",K27+7),"")
    

Примечание.

  • Использование проверки МЕСЯЦА и КОЛИЧЕСТВА СТРОК с формулой в ячейке K27ограничивает K29Excel выводом только ДАТЫ для всех воскресений и четвергов.
  • Теперь продолжайте менять дату и год в ячейке K23или в K25нужном месте.
  • При необходимости измените ссылки на ячейки в формуле.

решение2

Итак, эту проблему можно разбить на две части:

Условное форматирование

Вы хотите:

cell "F10" = 1-Mar for- Sun (first Sunday of the month)

основанный на A6содержанииMARCH

Поэтому в ячейку F10 можно поместить

=IFERROR(IF(FIND("MARCH",A6)<>0,"contains March","Does not contain march","")

=Find("MARCH",A6)выдаст ошибку, если не сможет найти "MARCH", поэтому мы используем =IFERROR(). Если ошибки нет, это означает, что он был успешно найден, а затем примените нужную вам логику.

Первое воскресенье месяца

Чтобы найти первое воскресенье месяца, вы можете использовать эту формулу:

'=(A4+ВЫБРАТЬ(ДЕНЬНЕДЕЛИ(A4,1),7,6,5,4,3,2,1))'

где A4 в моем случае — это дата, на которую он ссылается, то он найдет вперед, следующее воскресенье. Если вы подключите этот метод к первому, вы должны быть в состоянии придумать то, что вы хотите.

Что касается ячеек A11, A12, A13, вы можете следовать тому же самому методу.

решение3

Пытаться:

F10:  =DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-1)
F11:  =DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-5)
F12:  =F10+7

Выберите F12и заполните по мере необходимости

G10: =F10

Пользовательский формат G10:"dddd"

Выберите G10и заполните по мере необходимости

введите описание изображения здесь

ПРИМЕЧАНИЕ:В некоторых месяцах первый четверг будет происходить до первого воскресенья. Если вы предпочитаете начать с более раннего из первого четверга или первого воскресенья, а затем продолжить последовательность, то используйте эти формулы:

    F10:=MIN(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-1),
DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-5))

    F11: =MAX(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-1),
DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-5))

Связанный контент