
Estou tentando ter determinadas datas da semana desde o dia 1 até o último dia do mês quando digito um mês em uma célula por exemplo:
Se a célula "I6" contiver "março" ou qualquer mês:
" MARCH "
então:
- célula "F10" = 1º de março para-Sol(primeiro domingo do mês)
- Célula "F11" = 5 de março para quinta (primeira quinta-feira do mês)
- Célula "F12" = 8 de março para -Sol(segundo domingo do mês e assim por diante)
- Célula "F13" =12 de março para -qui
Isso é possível? Procurei em sites diferentes, mas sem sorte, muito obrigado.
Responder1
Você também pode usar isso:
Como funciona:
- Em Cell
K23
, insira a 1ª data do mês (como usei02/01/2020
, o formato éMM/DD/YYYY
). - Aplique
MMM YY
na célula. - Fórmula na célula
K25
:
=K$23+MOD(7-WEEKDAY(K$23,2),7)
- A seguir, fórmula em Cell
K26
:
=K$23+MOD(4-WEEKDAY(K$23,2),7)
Observação:Na fórmula acima, 7
& 4
representa domingo e quinta-feira, e você pode editá-los conforme sua necessidade.
Fórmula final na célula
K27
e preencha:=IFERROR(IF(AND(MONTH(K26)=MONTH(K$23),COUNT(J$25:J25)=7),"",K25+7),"")
Agora insira esta fórmula na célula
J25
e preencha.
=IF(ISBLANK(K25),"",K25)
Editado:
O OP levantou uma boa questão sobre como gerenciar datas se e quandoSdomingo eTquinta-feira são mais de 8 (como em maio, os domingos de agosto são 5 e as quintas são 4).
Insira esta fórmula na célula
L25
:=SUMPRODUCT(N(TEXT(ROW(INDIRECT(K25&":"&EOMONTH(K25,0))),"ddd")="Sun"))+SUMPRODUCT(N(TEXT(ROW(INDIRECT(K25&":"&EOMONTH(K25,0))),"ddd")="Thu"))
Observação Isso conta domingos e quintas-feiras, onde Sun
e Thu
são editáveis.
- Fórmula em
K27
:
=K$25+MOD(7-WEEKDAY(K$25,2),7)
- Fórmula na célula
k28
:
=K$25+MOD(4-WEEKDAY(K$25,2),7)
Insira a fórmula na célula
K29
:=IFERROR(IF(AND(MONTH(K28)=MONTH(K$25),COUNT(J$27:J27)>=(L$25-1)),"",K27+7),"")
Observação
- O uso de MONTH check & ROW COUNT com fórmula em Cell
K27
&K29
, restringe o Excel a produzir apenas DATAs para todos os domingos e quintas-feiras. - Agora continue alterando a data e o ano na célula
K23
ouK25
conforme necessário. - Ajuste as referências de células na fórmula conforme necessário.
Responder2
Portanto, você pode dividir esse problema em duas partes:
Formatação condicional
Você quer:
cell "F10" = 1-Mar for- Sun (first Sunday of the month)
baseado em A6
conterMARCH
Portanto na célula F10 você pode colocar
=IFERROR(IF(FIND("MARCH",A6)<>0,"contains March","Does not contain march","")
=Find("MARCH",A6)
ocorrerá um erro se não conseguir encontrar "MARCH", e é por isso que usamos o arquivo =IFERROR()
. Se não houver erro, significa que ele foi encontrado com sucesso e aplique a lógica desejada.
Primeiro domingo do mês
Para encontrar o primeiro domingo de um mês você pode usar esta fórmula:
'=(A4+ESCOLHER(DIASEMANAL(A4,1),7,6,5,4,3,2,1))'
onde A4 no meu caso é a data que ele está referenciando então ele encontrará adiante, no próximo domingo. Se você conectar esse método ao primeiro, poderá encontrar o que deseja.
No que diz respeito às células A11, A12, A13 você pode seguir exatamente o mesmo método.
Responder3
Tentar:
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
Selecione F12
e preencha conforme necessário
G10: =F10
Formato personalizado G10
:"dddd"
Selecione G10
e preencha conforme necessário
OBSERVAÇÃO:Em alguns meses, a primeira quinta-feira ocorrerá antes do primeiro domingo. Se você preferir começar com a primeira quinta-feira ou primeiro sol e depois continuar a sequência, use estas fórmulas:
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))