Partilhar: Classroom Teams WhatsApp
aulify · Mini-Projecto
UC UC03114 · T. Proteção Civil
Versão · Solução de referência

Mini-Projeto · Livro de registo e análise de ocorrências de um serviço municipal de proteção civil

Da recolha de dados à tabela dinâmica, ao gráfico e à macro, com ligação de folhas e proteção dos dados
⏱ Duração estimada: 12 horas (≈ 7 aulas) ↗ Referencial SNQ
Índice

Contexto

O Serviço Municipal de Proteção Civil de um município fictício regista as ocorrências em papel e em mensagens soltas, e a chefia não consegue responder a perguntas simples: quantas ocorrências houve por mês e por freguesia, que tipos mobilizam mais meios, quanto tempo demoram, quais continuam em curso. Pede-te que construas um livro de folha de cálculo que organize esses dados, os valide à entrada, os resuma em quadros e gráficos, e que possa ser partilhado com uma entidade externa sem expor informação desnecessária.

Trabalhas individualmente ou a pares, com os dados da secção seguinte: 30 ocorrências repartidas por três meses (colunas ID, Data, Freguesia, Tipo, Meios, Horas e Estado), a lista de tipologias e os escalões do nível de resposta. Entregas o livro, um breve relatório de uma página e uma apresentação curta à turma.

Dados do projeto

Os valores são fictícios e estão todos neste enunciado. Para a fase 2, escreve estes registos num editor de texto simples e grava-os como ficheiro CSV (codificação UTF-8, ponto e vírgula a separar as colunas, vírgula como separador decimal), que depois importas para o livro.

Ocorrências (30 registos, de março a maio de 2026):

ID Data Freguesia Tipo Meios Horas Estado
O-001 02/03/2026 Norte Incêndio rural 12 5,5 Concluída
O-002 05/03/2026 Centro Inundação 6 3,0 Concluída
O-003 09/03/2026 Sul Queda de árvore 3 1,5 Concluída
O-004 14/03/2026 Norte Acidente rodoviário 5 2,0 Concluída
O-005 16/03/2026 Nascente Incêndio urbano 8 3,0 Concluída
O-006 19/03/2026 Centro Acidente rodoviário 4 1,5 Concluída
O-007 22/03/2026 Sul Inundação 7 4,0 Concluída
O-008 25/03/2026 Nascente Queda de árvore 2 1,0 Concluída
O-009 28/03/2026 Norte Incêndio rural 14 6,5 Concluída
O-010 30/03/2026 Centro Incêndio urbano 9 3,5 Concluída
O-011 02/04/2026 Nascente Incêndio rural 15 8,0 Concluída
O-012 04/04/2026 Sul Acidente rodoviário 5 2,5 Concluída
O-013 08/04/2026 Centro Inundação 8 4,5 Concluída
O-014 11/04/2026 Norte Queda de árvore 3 1,0 Concluída
O-015 13/04/2026 Sul Incêndio urbano 9 3,5 Concluída
O-016 17/04/2026 Nascente Acidente rodoviário 4 2,0 Concluída
O-017 20/04/2026 Centro Incêndio rural 11 5,0 Concluída
O-018 23/04/2026 Norte Inundação 6 3,5 Concluída
O-019 26/04/2026 Sul Queda de árvore 2 1,5 Concluída
O-020 29/04/2026 Nascente Incêndio urbano 7 3,0 Concluída
O-021 03/05/2026 Norte Queda de árvore 2 1,0 Concluída
O-022 05/05/2026 Centro Acidente rodoviário 5 2,0 Concluída
O-023 08/05/2026 Sul Incêndio rural 13 6,0 Concluída
O-024 10/05/2026 Nascente Inundação 7 4,0 Concluída
O-025 15/05/2026 Centro Incêndio rural 10 6,0 Em curso
O-026 17/05/2026 Norte Incêndio urbano 8 3,0 Concluída
O-027 20/05/2026 Sul Acidente rodoviário 4 2,5 Concluída
O-028 22/05/2026 Nascente Queda de árvore 3 1,5 Concluída
O-029 26/05/2026 Norte Inundação 6 5,0 Em curso
O-030 29/05/2026 Sul Incêndio rural 9 5,5 Em curso

Tipologias (para a folha de apoio e para as procuras):

Tipo Prioridade Equipa de referência
Incêndio rural 1 Equipa florestal
Incêndio urbano 1 Equipa de combate a incêndios urbanos
Inundação 2 Equipa de apoio e bombagem
Acidente rodoviário 2 Equipa de socorro rodoviário
Queda de árvore 3 Equipa de limpeza de vias

Escalões do nível de resposta (para a correspondência aproximada):

Meios (a partir de) Nível
0 Reduzido
5 Moderado
10 Elevado

Requisitos

Funcionais

Não-funcionais

Fases

Fase 1 · Planeamento e estrutura do livro (1h) Ler o pedido da chefia, escrever as perguntas a que o livro deve responder e definir as colunas necessárias. Criar o livro, as folhas e a folha Leia-me (objetivo, origem dos dados, responsável, descrição das colunas). Definir formatos, fixar a linha de cabeçalhos e guardar com um nome adequado.

Fase 2 · Importar, limpar e validar os dados (2h) Importar o CSV com a codificação e o delimitador corretos, converter em números os valores guardados como texto, limpar espaços e duplicados e uniformizar as escritas. Criar a folha de apoio com a lista de tipologias e aplicar a validação de dados às colunas indicadas, com mensagens de entrada e alertas de erro. Testar cada regra com um valor válido e um inválido e registar o resultado.

Fase 3 · Fórmulas, funções e procuras (2h) Calcular na folha de resumo os totais de meios e de horas, médias, máximos e mínimos. Criar uma coluna de classificação com IF (por exemplo, duração longa ou curta), uma coluna de prioridade e outra de equipa com procura, e as contagens e somas condicionais por tipo, freguesia e estado. Acrescentar uma coluna com extração de texto (número de ordem do ID) e outra com data (mês ou dia da semana). Verificar três resultados com contas feitas à mão.

Fase 4 · Filtros, formatação condicional e tabela (1h) Converter o registo em tabela com nome e linha de totais. Aplicar o filtro automático para responder a duas perguntas da chefia e o filtro avançado com uma condição E e outra OU. Criar duas regras de formatação condicional, incluindo uma sobre a linha inteira. Mostrar a diferença entre SUM e SUBTOTAL numa lista filtrada.

Fase 5 · Tabela dinâmica e gráficos (2h) Criar a tabela dinâmica com freguesia em linhas, tipo em colunas e soma de meios em valores, e uma segunda vista com contagem de ocorrências por tipo e percentagens. Confirmar que o total da tabela dinâmica coincide com a soma direta. Criar um gráfico de colunas por tipo e um gráfico de linhas por mês, com todos os elementos de um bom gráfico e a indicação de períodos incompletos.

Fase 6 · Ligar folhas e automatizar (3h) Dividir os dados por mês em folhas com a mesma estrutura, com o total no mesmo endereço, e construir o resumo com referência 3D. Gravar a macro de formatação, escrever a macro que percorre as linhas e marca as prioridades (detetando a última linha), guardar como .xlsm e testar numa cópia.

Fase 7 · Partilha segura, apresentação e reflexão (1h) Preparar a versão para uma entidade externa que só pede totais por freguesia: remover o que não é necessário, converter em valores, inspecionar o documento e proteger com palavra-passe. Apresentar à turma o livro, os dois gráficos e uma conclusão que se possa seguir até aos dados, mostrando um erro que encontraste e como o corrigiste.

Critérios de avaliação

Critério Peso
Estrutura do livro, tipos de dados e configuração 10%
Importação, limpeza e validação de dados 15%
Fórmulas, funções, critérios e procuras 20%
Filtros, formatação condicional e tabela 10%
Tabela dinâmica e gráficos 20%
Ligação de folhas e macros 15%
Proteção de dados, conduta digital, relatório e apresentação 10%

Solução de referência (linhas gerais)

Estrutura: folhas Leia-me, Registo (dados), Tipologias (tipologias em A1:C6 e escalões em E1:F4), Resumo (cálculos, tabela dinâmica e gráficos) e, depois da fase 6, Março, Abril e Maio. A linha 1 do Registo está fixa e formatada; a coluna Data tem formato de data, Meios de número inteiro e Horas de número com uma casa decimal.

Validação: Meios, número inteiro entre 1 e 200; Horas, decimal entre 0 e 72; Estado e Tipo, listas apontadas a Tipologias; Data, entre 01/01/2026 e 31/12/2026, todas com estilo de alerta Parar. Testes registados: 12,5 recusado em Meios, 0 recusado, 12 aceite.

Fórmulas (sobre os 30 registos, nas linhas 2 a 31): =SUM(E2:E31) = 207; =AVERAGE(E2:E31) = 6,9; =MAX(E2:E31) = 15; =MIN(E2:E31) = 2; =COUNTIF(D2:D31; "Incêndio rural") = 7; =SUMIFS(E2:E31; D2:D31; "Incêndio rural"; G2:G31; "Concluída") = 65; classificação =IF(F2>=5; "Longa"; "Curta"), com 8 ocorrências "Longa"; prioridade =VLOOKUP(D2; Tipologias!$A$2:$C$6; 2; FALSE) com IFERROR a assinalar tipos desconhecidos (12 ocorrências de prioridade 1); equipa de referência =VLOOKUP(D2; Tipologias!$A$2:$C$6; 3; FALSE) (por exemplo, "Equipa florestal" para O-001, de tipo Incêndio rural); nível de resposta =VLOOKUP(E2; Tipologias!$E$2:$F$4; 2; TRUE), com 6 "Elevado", 15 "Moderado" e 9 "Reduzido"; ordem do ID =VALUE(RIGHT(A2; 3)); mês =MONTH(B2). Verificação à mão sobre uma amostra: os meios das três primeiras ocorrências somam 12 + 6 + 3 = 21, e a fórmula =SUM(E2:E4) tem de dar o mesmo.

Filtros e tabela: tabela tblRegisto com linha de totais. Filtro automático para "incêndios rurais com 6 ou mais horas": 4 ocorrências (O-009, O-011, O-023 e O-025) e SUBTOTAL(109; ...) a mostrar a soma só do visível (52 meios, contra 207 de SUM). Filtro avançado com Tipo = Incêndio rural e Meios >=10 na mesma linha (E): 6 ocorrências; e outra zona de critérios com Freguesia = Sul numa linha e Estado = Em curso na seguinte (OU): 10 ocorrências. Formatação condicional: horas maiores que 5 realçadas (6 células) e linha inteira com a regra =$G2="Em curso" (3 linhas: O-025, O-029 e O-030).

Tabela dinâmica e gráficos: freguesia em linhas, tipo em colunas, soma de Meios.

Freguesia Acid. rodoviário Inc. rural Inc. urbano Inundação Queda de árvore Total
Centro 9 21 9 14 53
Nascente 4 15 15 7 5 46
Norte 5 26 8 12 5 56
Sul 9 22 9 7 5 52
Total 27 84 41 40 15 207

O total geral é igual a =SUM direto. Segunda vista: tipo em linhas com soma de Meios, contagem de ID e % do total geral (incêndio rural 84 meios, 7 ocorrências, 40,6%; incêndio urbano 41, 5, 19,8%; inundação 40, 6, 19,3%; acidente rodoviário 27, 6, 13,0%; queda de árvore 15, 6, 7,2%). Gráfico de colunas ordenado do maior para o menor, com título "Meios empenhados por tipo de ocorrência (março a maio de 2026)", eixo vertical "Meios (n.º)" a começar em zero e rótulos cuja soma bate com o total. Gráfico de linhas por mês (70 em março, 70 em abril, 67 em maio) com nota de que o último mês pode estar incompleto.

Ligação: cada folha mensal tem dez registos e o total de meios na mesma célula, E12, com =SUM(E2:E11); Resumo usa =SUM(Março:Maio!E12) e, em paralelo, a soma das três ligações individuais (=Março!E12+Abril!E12+Maio!E12); os dois valores coincidem em 207.

Macros: FormatarRegisto (cabeçalho a negrito com fundo cinzento, colunas ajustadas, linha 1 fixa) e MarcarPrioridade, com Dim linha As Long, última linha obtida com Cells(Rows.Count, 1).End(xlUp).Row e ciclo For que escreve "Prioridade" numa coluna livre quando Horas é maior ou igual a 5 e o Estado é "Em curso" (marca O-025, O-029 e O-030). Livro guardado como .xlsm, testado numa cópia.

Partilha segura: cópia do livro apenas com a folha de totais por freguesia, fórmulas convertidas em valores, documento inspecionado (autor, comentários, folhas ocultas removidos), palavra-passe de abertura, e agregação das freguesias com contagens muito pequenas. Registo de quem recebeu o ficheiro, quando e para quê.

Relatório de uma página: perguntas da chefia, resposta a cada uma com número e gráfico, e uma conclusão que se segue até aos dados, por exemplo: "os incêndios rurais representam 84 dos 207 meios empenhados no período (cerca de 41%), em 7 das 30 ocorrências".

Erros comuns

Bónus (opcional)

Reflexão

No relatório final, responde: qual foi a verificação (um total comparado por dois caminhos, um teste de validação ou uma conta à mão) que te evitou um erro que, de outro modo, teria passado para a apresentação? E se a chefia te pedisse para partilhar o livro completo, com todas as linhas, com uma entidade externa, que critério usarias para decidir o que deve ou não sair da tua organização?