Calcular o número de domingos no mês

8

No Microsoft Excel, estou procurando determinar o número de domingos em um determinado mês. Estou montando uma planilha de orçamento e algumas das subcontas recebem financiamento extra quando cinco domingos são no mês em vez de quatro.

A única célula que eu tenho que referenciar é o título da planilha que está na célula A1 e é igual ao mês atual. Por exemplo 6/1/14

wbeard52
fonte

Respostas:

12

Tente isso onde A1 é o dia de início do mês:

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

Você também pode usar isso para qualquer dia da semana apenas mudar "Sun" e qualquer intervalo de datas, substituindo A1 com data de início e EOMONTH(A1,0) com data final.

Jay-ar
fonte
1
Uau. Isso é realmente criativo. Deixe-me entender. Criamos os valores de data para todo o mês com as funções indireta e de linha? Nós então os convertemos em texto na forma de Sun, Mon, etc. Avaliamos a condição de Sun e alteramos o resultado para um ou para zero e então somamos o resultado. Isso está correto?
wbeard52
sim exatamente .. :)
Jay-ar
9

Se a data mencionada for sempre a primeira do mês, esta também funcionará:

=INT((WEEKDAY(A1-1)+EOMONTH(A1,0)-A1)/7)
teylyn
fonte
Simples. Muito elegante em comparação com a minha fórmula acima. Obrigado.
wbeard52
3

Muito semelhante a uma resposta anterior, mas apenas um pouco mais limpo ...

=SUMPRODUCT(N(WEEKDAY(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))))=1))
user743733
fonte
2
=DAY(EOMONTH(A1,0))-NETWORKDAYS.INTL(A1,EOMONTH(A1,0),11)

EDIT: Isso funciona no Excel 2016, não tenho certeza quando NETWORKDAYS.INTL foi introduzido.

SRCP
fonte
O que é Networkdays.Intl ele não funciona com todos excel
yass
Ah, você está certo. Eu não vi que ele estava se referindo ao Excel 2010. Eu tenho 2016. Ao contrário dos dias da rede, Networkdays.intl permite que você escolha os fins de semana. Neste caso, eu disse ao Excel que o fim de semana é somente no domingo, é o que o 11 representa. Por isso, dá-lhe o número de dias em um período sem contar os domingos.
SRCP
1

Acredito que encontrei outra maneira de esfolar esse gato (por assim dizer).

Se você quiser evitar a inserção de datas e tiver uma planilha grande para projeção (18 meses, por exemplo), poderá simplesmente informar à fórmula qual é o seu mês e ano e formatá-la adequadamente. Isto juntou-se a uma referência absoluta às células de cabeçalho que contém o dia da semana em questão e você tem uma tabela muito mais compacta e mais limpa (na minha opinião).

A3 = Jan, B3 = 2017, C2: I2 = 3 Abreviação do dia Char (ou seja, SUN)

Digite a fórmula na célula C3

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(DATEVALUE(TEXT(CONCAT($A3,"/",$B3),"mm/dd/yyyy"))&":"&EOMONTH(DATEVALUE(TEXT(CONCAT($A3,"/",$B3),"mm/dd/yyyy")),0))),"ddd")=C$2))

Caçada feliz

Jeremy Cast
fonte
0

Uma ligeira variação do resposta aceita , onde você não precisa do primeiro dia do mês em A1.

Isto é conseguido substituindo A1 com:

date(year(today()),month(today()),1)

Isto está assumindo que você quer para o mês atual.

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(date(year(today()),month(today()),1)&":"&EOMONTH(date(year(today()),month(today()),1),0))),"ddd")="Sun"))
CalvT
fonte