Post on 17-Apr-2015
Ludwig Krippahl, 2007
Programação para as Ciências Experimentais
2006/7
Teórica 11
Ludwig Krippahl, 2007 2
Na aula de hoje...
Excel• Macros
• Histogramas.
• Referência dinâmica (OFFSET)
• Formatação condicional
• Cálculo condicional (SUMIF, COUNTIF)
• Strings
• Informação sobre conteúdo das células
Trabalho 2
Ludwig Krippahl, 2007 3
Macros
«Macro-instrução»• Conjunto de instruções que é executado
como uma só (significado inicial, 1970s).
• Hoje em dia tem um significado mais geral, refere-se a qualquer programa escrito numa linguagem usada para controlar uma aplicação. No caso do Excel, Visual Basic.
Ludwig Krippahl, 2007 4
Macros
Gravar macro:
Ludwig Krippahl, 2007 5
Macros
Gravar macro:• Tools->Macro->Record new Macro
• Dar nome (e.g. Ordenar).
Ludwig Krippahl, 2007 6
Macros
Gravar macro:• Tools->Macro->Record new Macro
• Dar nome (e.g. Ordenar).
• No final, carregar no stop
Ludwig Krippahl, 2007 7
Macros
Alternativas para correr a macro:• Tools->Macro->Macros->Run
• Usar a combinação de teclas definida quando gravámos (ou definir uma em Tools->Macro->Macros->Options
• Atribuir a macro a um objecto na folha (um botão, um desenho). Para um desenho, click botão da direita e “Assign Macro”.
Ludwig Krippahl, 2007 8
Macros
Bom para tarefas repetitivas de formatação, ordenação, reposicionar dados, etc.
Ludwig Krippahl, 2007 9
Macros
Para ver o código:• Tools->Macro->Visual Basic Editor
• Modules
Ludwig Krippahl, 2007 10
Macros
Sub Ordena()
Columns("A:B").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Ludwig Krippahl, 2007 11
Histogramas
Função FREQUENCY(• Dados;
• Separadores)
É uma função que devolve um vector de dimensão igual a um mais o número de separadores, com as contagens dos elementos entre os separadores (ou maiores que o último)
Ludwig Krippahl, 2007 12
HistogramasDados Separadores
FREQUENCY
Ludwig Krippahl, 2007 13
Referências dinâmicas
OFFSET(• Célula de referência, a partir da qual
contamos as linhas e colunas;
• Linhas;
• Colunas;
• Altura;
• Largura) Tem que ser usada como argumento de
outra função (e.g. SUM, AVERAGE...)
Ludwig Krippahl, 2007 14
Referências dinâmicas
Exemplo: OFFSET(A1,3,5,2,4)
• Grupo de 2x4 (altura x largura) células a começar da 3ª linha e 5ª coluna a contar da A1.
Ludwig Krippahl, 2007 15
Referências dinâmicas
Exemplo:
Ludwig Krippahl, 2007 16
Referências dinâmicas
É útil para fazer depender a referência de um valor calculado. Por exemplo, com COUNTA, que conta o número de células não vazias.
Exemplo• =SUM(OFFSET(A1;1;1;COUNTA(B:B)-1;1))
• Soma a coluna dos gastos, qualquer que seja o numero de entradas (o -1 desconta o cabeçalho “Gastos”).
Ludwig Krippahl, 2007 17
Formatação Condicional
Seleccionar células Format->Conditional Formatting Especificar condições e formatação se
as condições forem preenchidas (Exemplo: a vermelho e bold se o gasto for maior que €100).
Ludwig Krippahl, 2007 18
Formatação Condicional
Seleccionar células Format->Conditional Formatting Especificar condições e formatação se
as condições forem preenchidas (Exemplo: a vermelho e bold se o gasto for maior que €100).
Ludwig Krippahl, 2007 19
Cálculo Condicional
COUNTIF(células, condição)• Conta quantas preenchem condição
• Condição é uma string• “>20”, “=12”
SUMIF(células, condição, células a somar)• Soma as células no último argumento que
correspondem às do primeiro que cumprem a condição.
Ludwig Krippahl, 2007 20
Strings
LEN(string)• Comprimento.
CONCATENATE(S1;S2;...)• União das strings
LEFT(string, numero de caracteres)• Devolve os primeiros caracteres da string
RIGHT(string, numero de caracteres)
Ludwig Krippahl, 2007 21
Informação sobre células
ISBLANK(célula)• True se está vazia
ISNA(célula)• True se é um erro do tipo #N/A
ISERR(célula)• True se qualquer erro excepto #N/A
ISNUMBER, ISTEXT, ISERROR...
Ludwig Krippahl, 2007 22
Trabalho 2
Modelo:
Ludwig Krippahl, 2007 23
Trabalho 2
Tem dois parâmetros mas a taxa de recuperação é 1 sobre o tempo médio de hospitalização.
Ludwig Krippahl, 2007 24
Trabalho 2
Dados:• Doente com alta:
Ver radiografias em anexo.
Deu entrada a 4 de Maio de 2007.
Sofre de miopia
Teve alta a 10 de Maio de 2007.
Ludwig Krippahl, 2007 25
Trabalho 2
Dados:• Data em que ficou infectado:
Ver radiografias em anexo.
Deu entrada a 4 de Maio de 2007.
Sofre de miopia
Teve alta a 10 de Maio de 2007.
Ludwig Krippahl, 2007 26
Trabalho 2
Dados:• Data em que recuperou (já não conta como I):
Ver radiografias em anexo.
Deu entrada a 4 de Maio de 2007.
Sofre de miopia
Teve alta a 10 de Maio de 2007.
Ludwig Krippahl, 2007 27
Trabalho 2
Dados:• Doente que ainda não teve alta (só tem data
de entrada):
Sofre de miopia
Deu entrada a 21 de Maio de 2007.
Tomou três aspirinas.
Ludwig Krippahl, 2007 28
Trabalho 2
Dados:• Os dados são datas de entrada e saída
Modelo• O modelo é acerca do número de susceptíveis,
infectados, e recuperados
Datas• Em cada lote os dados são até ao dia da última
entrada. Não podemos saber quantos infectados há depois (quantos entram ou saem)
Ludwig Krippahl, 2007 29
Trabalho 2
Actualizar• Substituir todos os ficheiros .txt pelos que
vêm no novo lote (pacientes sem alta podem já ter tido alta).
• Exemplo:• Maio21.zip: ficheiros 1 a 27
• Maio28.zip: ficheiros 1 a 70, para substituir os outros e adicionar mais dados
Ludwig Krippahl, 2007 30
Trabalho 2
Ajuste do modelo• Pelos ficheiros podem obter o valor de I para
cada dia da epidemia (até à data do lote de ficheiros) e o valor da taxa de recuperação.
• Ajustem o modelo de forma a que o número de infectados no modelo corresponda o melhor possível ao número de infectados observado.
Ludwig Krippahl, 2007 31
Trabalho 2
Resultado final• Um sistema prático e fácil de usar para se
actualizar os dados e ver no Excel a simulação, os dados, e a informação pedida (máximo de infectados ao mesmo tempo, total de afectados ao fim de 100 dias, a simulação para 100 dias, etc...)
• Deve estar explicado na folha Excel como usar o sistema.
Ludwig Krippahl, 2007 32
Trabalho 2
Resultado final
0
100
200
300
400
500
600
700
800
900
1000
0 20 40 60 80 100
S
I
R
Dados
Ludwig Krippahl, 2007 33
Próxima aula
Dúvidas sobre o trabalho Dicas sobre o exame
• Estrutura do enunciado
• Tipos de perguntas
• Alguns exemplos
Revisões, ou o que quiserem (enviem sugestões antecipadamente)
Ludwig Krippahl, 2007 34
Dúvidas