Calendário no Excel com uma fórmula (matriz inserida, é claro!) - Dicas do Excel

Crie um calendário no Excel com uma fórmula usando uma fórmula inserida em matriz.

Olhe para esta figura:

Calendário no Excel - dezembro

Essa fórmula,, =Coolé a mesma fórmula em todas as células de B5: H10! Veja:

Fórmula base do calendário

Foi inserido na matriz assim que B5: H10 foi selecionado pela primeira vez. Neste artigo, você verá o que está por trás da fórmula.

A propósito, há uma célula que ainda não foi mostrada que é o mês a ser mostrado. Ou seja, a célula J1 contém =TODAY(), (e estou escrevendo isso em dezembro), mas se você alterá-la para 08/05/2012, verá:

Mês alterado para maio

Estamos em maio de 2012. OK, definitivamente legal! Comece do início e vá até essa fórmula no calendário e veja como ela funciona.

Além disso, suponha que hoje seja 8 de maio de 2012.

Primeiro, olhe para esta figura:

Fórmula de amostra

A fórmula realmente não faz sentido. Seria, se estivesse cercado por =SUM, mas você quer ver o que está por trás da fórmula, então você vai expandi-la selecionando-a e pressionando a tecla F9.

Selecione a fórmula

A figura acima torna-se a figura abaixo quando a tecla F9 é pressionada.

O que está por trás da fórmula

Observe que há um ponto-e-vírgula após o 3 - isso indica uma nova linha. Novas colunas são representadas por uma vírgula. Então você vai tirar vantagem disso.

O número de semanas em um mês varia, mas nenhum calendário precisa de mais de seis linhas para representar qualquer mês e, claro, todos eles têm sete dias. Olhe para esta figura:

Intervalo de calendário

Insira manualmente os valores de 1 a 42 em B5: H10, e se você inserir =B5:H10em uma célula e, em seguida, expandir a barra de fórmula, você verá o que é mostrado aqui:

Expanda a fórmula na barra de fórmulas

Observe a colocação dos pontos-e-vírgulas - após cada múltiplo de 7 - indicando uma nova linha. Este é o início da fórmula, mas em vez de uma fórmula tão longa, você pode usar esta fórmula mais curta. Selecione B5: H10. Tipo

=(0;1;2;3;4;5)*7+(1,2,3,4,5,6,7)

como a fórmula, mas não pressione Enter.

Para dizer ao Excel que esta é uma fórmula de matriz, você deve manter pressionado Ctrl + Shift com a mão esquerda. Enquanto segura Ctrl + Shift, pressione Enter com a mão direita. Em seguida, solte Ctrl + Shift. No restante deste artigo, esse conjunto de pressionamentos de tecla será denominado Ctrl + Shift + Enter.

Se você fez Ctrl + Shift + Enter corretamente, as chaves aparecerão ao redor da fórmula na barra de fórmulas e os números de 1 a 42 aparecerão em B5: H10 conforme mostrado aqui:

Cintas onduladas em torno da fórmula

Observe que você está pegando os números de 0 a 5 separados por ponto-e-vírgula (nova linha para cada) e multiplicando-os por 7, dando efetivamente o seguinte:

Expanda mais - índice de linha multiplicado por 7

A orientação vertical desses valores somada à orientação horizontal dos valores de 1 a 7 produz os mesmos valores mostrados. A expansão disso é idêntica à que você tinha antes. Suponha que agora você adicione HOJE a esses números.

Observação: editar uma fórmula de matriz existente é muito complicado. Com cuidado, siga estas etapas: Selecione B5: H10. Clique na barra de fórmulas para editar a fórmula existente. Digite + J1, mas não pressione Enter. Para aceitar a fórmula editada, pressione Ctrl + Shift + Enter.

O resultado de 8 de maio de 2012 é:

O resultado de 8 de maio de 2012

Esses números são números de série (o número de dias desde 01/01/1900). Se você formatar como datas curtas:

Intervalo formatado

Claramente não está certo, mas você vai chegar lá. E se você os formatar simplesmente como "d" para o dia do mês:

Formatar como 'dia' do mês

Quase parece um mês, mas nenhum mês começa no nono dia do mês. Ah, aqui está um problema. Você usou o J1 que contém 08/05/2012 e realmente precisa usar a data do primeiro dia do mês. Então, suponha que você coloque =DATE(YEAR(J1),MONTH(J1),1)em J2:

Data do primeiro dia do mês

A célula J1 contém 08/05/2012 e a célula J2 muda isso para o primeiro dia do mês de tudo o que é inserido em J1. Portanto, se você alterar J1 na fórmula do calendário para J2:

Altere a data base como a primeira data do mês

Mais perto, mas ainda não está certo. É necessário mais um ajuste, ou seja, você precisa subtrair o dia da semana do primeiro dia. Ou seja, a célula J3 contém =WEEKDAY(J2). 3 representa terça-feira. Portanto, agora, se você subtrair J3 desta fórmula, obterá:

Mudança no dia da semana

E isso é certo para maio de 2012!

Ok, você está bem perto. O que ainda está errado é que os dias 29 e 30 de abril estão aparecendo no calendário de maio e de 1 ° a 9 de junho também. Você precisa limpar isso.

Você pode dar um nome à fórmula para facilitar a referência. Chame de "Cal" (não é "legal" ainda). Veja esta figura:

Crie uma fórmula nomeada

Em seguida, você pode alterar a fórmula para simplesmente ser =Cal(ainda Ctrl + Shift + Enter):

Altere a fórmula de matriz com a fórmula nomeada

Agora você pode alterar a fórmula para ler que, se o resultado estiver na linha 5 e o resultado for superior a 20, digamos, esse resultado deve estar em branco. A linha 5 conterá a primeira semana de qualquer mês, portanto, você nunca deve ver nenhum valor acima de 20 (ou qualquer número acima de sete estaria errado - um número como 29 que você vê na célula B5 da figura acima é do mês anterior). Então você pode usar =IF(ROW()=5,IF(DAY(Cal)>20,"",Cal),Cal):

Datas do mês anterior

Primeiro, observe que as células B5: D5 estão em branco. A fórmula agora lê "se esta for a linha 5, então se o DIA do resultado for superior a 20, mostre em branco".

Você pode continuar a remover os números baixos no final - os valores do próximo mês. Veja como fazer isso facilmente.

Edite a fórmula e selecione a referência final para "Cal"

Datas do próximo mês - 1

Comece digitando IF (ROW ()> 8, SE (DIA (Cal) <15, "", Cal), Cal) para substituir o Cal final.

Datas do próximo mês - 2

A fórmula final deve ser

=IF(ROW()=5,IF(DAY(Cal)>20,"",Cal),IF(ROW()>8,IF(DAY(Cal)<15,"",Cal),Cal))

Pressione Ctrl + Shift + Enter. O resultado deve ser:

Resultado-1

Duas coisas a fazer. Você pode pegar essa fórmula e dar a ela um nome, "Legal":

Nomeie a fórmula como 'Legal'

Em seguida, use isso na fórmula mostrada aqui:

Resultado-2

A propósito, nomes definidos são tratados como se fossem inseridos em matriz.

O que falta fazer é formatar as células e inserir os dias da semana e o nome do mês. Assim, você amplia as colunas, aumenta a altura da linha, aumenta o tamanho da fonte e alinha o texto:

Formate o intervalo

Em seguida, coloque bordas ao redor das células:

Bordas do calendário

Una e centralize o mês e o ano e formate-os:

Nome do mês e ano

Em seguida, desative as linhas de grade e voila:

Resultado Final - Calendário

Este artigo convidado é do Excel MVP Bob Umlas. É do livro Excel Outside the Box. Para ver os outros tópicos do livro, clique aqui.

Artigos interessantes...