{"id":187,"date":"2025-12-24T09:16:11","date_gmt":"2025-12-24T12:16:11","guid":{"rendered":"https:\/\/www.bernabauer.com\/blog\/?p=187"},"modified":"2025-12-24T09:16:14","modified_gmt":"2025-12-24T12:16:14","slug":"como-criar-um-calendario-dinamico-no-excel-a-partir-de-uma-lista-de-eventos","status":"publish","type":"post","link":"https:\/\/www.bernabauer.com\/blog\/como-criar-um-calendario-dinamico-no-excel-a-partir-de-uma-lista-de-eventos\/","title":{"rendered":"Como criar um calend\u00e1rio din\u00e2mico no Excel a partir de uma lista de eventos"},"content":{"rendered":"\n<p>O v\u00eddeo mostra como partir de uma lista simples de datas e descri\u00e7\u00f5es para construir um calend\u00e1rio visual em Excel, em que os eventos aparecem automaticamente nos dias corretos. Esse calend\u00e1rio permite trocar m\u00eas e ano em uma lista suspensa, visualizar semana do ano, destacar a data de hoje e atualizar tudo assim que um novo evento \u00e9 inclu\u00eddo na base.\u200b<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Create a Dynamic Calendar From a List of Events in Excel\" width=\"720\" height=\"405\" src=\"https:\/\/www.youtube.com\/embed\/qkay9xnJf5c?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"passo-1-montar-a-grade-de-datas\">Passo 1: montar a grade de datas<\/h2>\n\n\n\n<p>O ponto de partida \u00e9 uma lista de eventos com duas colunas principais, uma para a data e outra para o nome do evento. Em outra \u00e1rea da planilha, o autor monta a grade do calend\u00e1rio com os dias da semana (segunda a domingo), o nome do m\u00eas e o ano, que ser\u00e3o usados como base para as f\u00f3rmulas.\u200b<\/p>\n\n\n\n<p>Para preencher os dias na grade, ele usa a fun\u00e7\u00e3o SEQUENCE, criando blocos de 7 n\u00fameros (uma linha por semana) e deixando uma linha abaixo de cada semana para exibir as descri\u00e7\u00f5es dos eventos. Em seguida, combina a data do primeiro dia do m\u00eas (montada com o n\u00famero 1, o m\u00eas e o ano selecionados) com a fun\u00e7\u00e3o WEEKDAY para descobrir em que dia da semana esse primeiro dia cai e ajustar o in\u00edcio da sequ\u00eancia.\u200b<\/p>\n\n\n\n<p>Um detalhe importante \u00e9 formatar as c\u00e9lulas como datas, o que faz a SEQUENCE avan\u00e7ar automaticamente pelos dias do m\u00eas e continuar para o m\u00eas seguinte, mesmo que a f\u00f3rmula apenas some n\u00fameros. Isso permite que, ao escolher outro m\u00eas ou ano, toda a grade de datas seja recalculada de forma din\u00e2mica.\u200b<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"passo-2-tornar-ms-e-ano-dinmicos\">Passo 2: tornar m\u00eas e ano din\u00e2micos<\/h2>\n\n\n\n<p>Para trocar o m\u00eas e o ano por meio de listas suspensas, o v\u00eddeo cria uma coluna auxiliar com os nomes dos meses e outra com os anos dispon\u00edveis. As c\u00e9lulas onde ficam o m\u00eas e o ano s\u00e3o mescladas e centralizadas para formar um cabe\u00e7alho visual na parte superior do calend\u00e1rio.\u200b<\/p>\n\n\n\n<p>Com essas listas prontas, ele aplica Valida\u00e7\u00e3o de Dados do tipo Lista nas c\u00e9lulas do m\u00eas e do ano, usando como origem as colunas auxiliares. Assim, quando o usu\u00e1rio escolhe outro m\u00eas ou ano na lista suspensa, as f\u00f3rmulas que montam a data inicial se atualizam, e toda a grade do calend\u00e1rio \u00e9 recalculada automaticamente.\u200b<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"passo-3-trazer-os-eventos-para-dentro-do-calendrio\">Passo 3: trazer os eventos para dentro do calend\u00e1rio<\/h2>\n\n\n\n<p>Com o calend\u00e1rio de datas pronto, o passo seguinte \u00e9 puxar as descri\u00e7\u00f5es dos eventos da lista original para as c\u00e9lulas correspondentes do calend\u00e1rio. Para isso, o autor usa a fun\u00e7\u00e3o FILTER, que retorna todas as descri\u00e7\u00f5es cujas datas sejam iguais \u00e0 data da c\u00e9lula do calend\u00e1rio.\u200b<\/p>\n\n\n\n<p>Como nem todo dia ter\u00e1 eventos, a f\u00f3rmula inclui o argumento if_empty da FILTER com aspas duplas, pedindo que a c\u00e9lula fique em branco quando n\u00e3o houver correspond\u00eancia. Em seguida, a f\u00f3rmula \u00e9 copiada para as demais c\u00e9lulas da \u00e1rea de eventos do calend\u00e1rio, garantindo que cada data busque os textos corretos.\u200b<\/p>\n\n\n\n<p>Quando h\u00e1 mais de um evento no mesmo dia, a FILTER sozinha gera erro de derramamento, porque tenta preencher mais linhas do que o espa\u00e7o dispon\u00edvel. Para resolver isso, o v\u00eddeo introduz a fun\u00e7\u00e3o TEXTJOIN, que junta em uma \u00fanica c\u00e9lula todos os textos retornados por FILTER, separados por v\u00edrgula e espa\u00e7o, ignorando c\u00e9lulas vazias.\u200b<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"passo-4-formatar-o-calendrio\">Passo 4: formatar o calend\u00e1rio<\/h2>\n\n\n\n<p>Depois que o calend\u00e1rio est\u00e1 funcional, o autor trabalha na apar\u00eancia, come\u00e7ando por mover colunas auxiliares para outra planilha para liberar a \u00e1rea do calend\u00e1rio. Em seguida, aumenta a altura das linhas onde ficam os eventos, centraliza o conte\u00fado, ativa quebra de texto e remove as linhas de grade, dando mais espa\u00e7o para ler descri\u00e7\u00f5es maiores.\u200b<\/p>\n\n\n\n<p>As colunas dos dias s\u00e3o ajustadas em largura e os t\u00edtulos (m\u00eas, ano e nomes dos dias) recebem tamanhos de fonte maiores, negrito e cores de preenchimento que destacam o cabe\u00e7alho. Bordas claras s\u00e3o aplicadas ao redor de cada dia, o que faz o calend\u00e1rio realmente ganhar forma de grade visual.\u200b<\/p>\n\n\n\n<p>O v\u00eddeo tamb\u00e9m sugere diferenciar fins de semana com uma cor de preenchimento mais clara, facilitando a leitura e a separa\u00e7\u00e3o entre dias \u00fateis e n\u00e3o \u00fateis. O resultado \u00e9 um calend\u00e1rio que n\u00e3o apenas funciona, mas tamb\u00e9m se parece com um calend\u00e1rio profissional.\u200b<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"passo-5-adicionar-nmero-da-semana-e-destacar-a-dat\">Passo 5: adicionar n\u00famero da semana e destacar a data atual<\/h2>\n\n\n\n<p>Para incluir o n\u00famero da semana, o autor adiciona uma coluna ao lado do calend\u00e1rio e usa a fun\u00e7\u00e3o WEEKNUM aplicada \u00e0 data da primeira linha de cada semana. Mesmo quando a primeira semana do m\u00eas inclui dias do m\u00eas anterior, a fun\u00e7\u00e3o calcula corretamente o n\u00famero da semana do ano, e o autor testa isso alternando meses e verificando a continuidade da numera\u00e7\u00e3o.\u200b<\/p>\n\n\n\n<p>Depois, ele mescla as c\u00e9lulas dessa coluna por semana, centraliza o texto, aplica formata\u00e7\u00e3o semelhante \u00e0 dos fins de semana e adiciona bordas, deixando o n\u00famero da semana visualmente alinhado com cada linha da grade. Isso d\u00e1 contexto adicional para quem usa o calend\u00e1rio em planejamentos semanais.\u200b<\/p>\n\n\n\n<p>Para destacar a data atual, o v\u00eddeo utiliza Formata\u00e7\u00e3o Condicional baseada em f\u00f3rmula, aplicando a regra C4 = TODAY (ajustada para a primeira c\u00e9lula de data da sele\u00e7\u00e3o). Quando h\u00e1 erro com aspas no TODAY, o autor corrige removendo as aspas, e a regra passa a funcionar, preenchendo com cor (por exemplo, laranja) a c\u00e9lula correspondente ao dia de hoje.\u200b<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"passo-6-atualizar-e-expandir-o-calendrio\">Passo 6: atualizar e expandir o calend\u00e1rio<\/h2>\n\n\n\n<p>Por fim, o autor mostra que, ao adicionar uma nova linha na lista de eventos e alterar o texto ou a data, o calend\u00e1rio se atualiza automaticamente, sem necessidade de apertar nenhum bot\u00e3o de atualiza\u00e7\u00e3o. Isso demonstra a vantagem de usar f\u00f3rmulas din\u00e2micas e refer\u00eancias bem estruturadas para criar um calend\u00e1rio que acompanha a evolu\u00e7\u00e3o dos dados.\u200b<\/p>\n\n\n\n<p>Ele tamb\u00e9m comenta uma limita\u00e7\u00e3o: quando h\u00e1 v\u00e1rios eventos no mesmo dia, a solu\u00e7\u00e3o proposta s\u00f3 exibe os textos concatenados em uma c\u00e9lula, sem controlar hor\u00e1rios separados. Como solu\u00e7\u00e3o pr\u00e1tica, sugere incluir o hor\u00e1rio diretamente na descri\u00e7\u00e3o do evento, de forma que o texto final j\u00e1 traga essas informa\u00e7\u00f5es no calend\u00e1rio.\u200b<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O v\u00eddeo mostra como partir de uma lista simples de datas e descri\u00e7\u00f5es para construir um calend\u00e1rio visual em Excel, em que os eventos aparecem automaticamente nos dias corretos. Esse calend\u00e1rio permite trocar m\u00eas e ano em uma lista suspensa, visualizar semana do ano, destacar a data de hoje e atualizar tudo assim que um&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[7],"tags":[73,71],"class_list":["post-187","post","type-post","status-publish","format-standard","hentry","category-produtividade","tag-calendario","tag-excel"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bernabauer.com\/blog\/wp-json\/wp\/v2\/posts\/187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bernabauer.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bernabauer.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bernabauer.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bernabauer.com\/blog\/wp-json\/wp\/v2\/comments?post=187"}],"version-history":[{"count":1,"href":"https:\/\/www.bernabauer.com\/blog\/wp-json\/wp\/v2\/posts\/187\/revisions"}],"predecessor-version":[{"id":188,"href":"https:\/\/www.bernabauer.com\/blog\/wp-json\/wp\/v2\/posts\/187\/revisions\/188"}],"wp:attachment":[{"href":"https:\/\/www.bernabauer.com\/blog\/wp-json\/wp\/v2\/media?parent=187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bernabauer.com\/blog\/wp-json\/wp\/v2\/categories?post=187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bernabauer.com\/blog\/wp-json\/wp\/v2\/tags?post=187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}