Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual de Excel
Manual de Excel
Viseu, 2000
ndice
1.
FORMATAO, FRMULAS, NOMES, REFERNCIAS RELATIVAS E ABSOLUTAS --------------- 4 1.1. MODOS DE TRABALHO / INSERO DE DADOS: -----------------------------------------------------------------------------6 1.1.1. Modo Pronto ----------------------------------------------------------------------------------------------------------- 6 1.1.2. Modo Edio ----------------------------------------------------------------------------------------------------------- 7 1.2. COMPONENTES DA BARRA DE EDIO ---------------------------------------------------------------------------------------7 1.3. FRMULAS (OPERADORES E OPERANDOS) -----------------------------------------------------------------------------------9 1.4. MODELO DE CLCULO SIMPLIFICADO -------------------------------------------------------------------------------------- 10 1.5. REFERNCIAS RELATIVAS, ABSOLUTAS E MISTAS------------------------------------------------------------------------- 12 1.6. NOMES DE CLULAS ----------------------------------------------------------------------------------------------------------- 14
2.
FUNES: UTILIZAO / CRIAO DE FUNES. TIPOS DE ERROS ------------------------------- 16 2.1. FUNES MATEMTICAS: ---------------------------------------------------------------------------------------------------- 16 2.2. FUNES LOGARTMICAS ----------------------------------------------------------------------------------------------------- 18 2.3. FUNES TRIGONOMTRICAS ------------------------------------------------------------------------------------------------ 19 2.4. FUNES PARA MATRIZES ---------------------------------------------------------------------------------------------------- 19 2.5. FUNES ESTATSTICAS ------------------------------------------------------------------------------------------------------ 19 2.6. FUNES LGICAS E DE INFORMAO ------------------------------------------------------------------------------------- 20 2.6.1 Funes lgicas:------------------------------------------------------------------------------------------------------ 20 2.6.2. Funo SE ou IF ----------------------------------------------------------------------------------------------------- 20 2.6.3. Funes E, OU e NO ---------------------------------------------------------------------------------------------- 21 2.6.4. Funes VERDADEIRO e FALSO -------------------------------------------------------------------------------- 22 2.7. FUNES PERSONALIZADAS ------------------------------------------------------------------------------------------------- 23 2.8. FUNES DE INFORMAO: -------------------------------------------------------------------------------------------------- 24 2.9. TIPOS DE ERROS: --------------------------------------------------------------------------------------------------------------- 26
3.
DATAS E HORAS, NMEROS ALEATRIOS (RAND), SUMIF, COUNTIF------------------------------ 27 3.1. INTRODUO DE UMA SRIE DE DATAS------------------------------------------------------------------------------------- 28 3.2. FUNES DE DATA E HORA --------------------------------------------------------------------------------------------------- 28 3.3. FUNES MATEMTICAS / ALEATRIO E ALEATRIOENTRE ----------------------------------------------------------- 31 3.4. FUNO MATEMTICA SOMA.SE: ------------------------------------------------------------------------------------------- 31 3.5. FUNO ESTATSTICA CONTAR.SE: ----------------------------------------------------------------------------------------- 31
4.
FUNES DE TEXTO: LOWER, UPPER, LEFT, RIGHT, FIND, SUBST E FUNES DE CONSULTA EM TABELAS: VLOOKUP, HLOOKUP ---------------------------------------------------------- 33 4.1. FUNES DE TEXTO ----------------------------------------------------------------------------------------------------------- 33 4.2. FUNES DE CONSULTA E REFERNCIA ------------------------------------------------------------------------------------ 36
5.
FUNES DE BASE DE DADOS: DGET, DCOUNTA, DSUM, ... CRITRIOS --------------------------- 41 5.1. CUIDADOS A TER AO CRIAR TABELAS -------------------------------------------------------------------------------------- 41 5.2. FUNES DE BASE DE DADOS ------------------------------------------------------------------------------------------------ 42 5.3.CONSTRUO DE CRITRIOS -------------------------------------------------------------------------------------------------- 43 5.3.1. Critrios comparados simples ------------------------------------------------------------------------------------- 43 5.3.2 Critrios compostos -------------------------------------------------------------------------------------------------- 44 5.3.3 Critrios calculados-------------------------------------------------------------------------------------------------- 45 5.4. FILTROS AUTOMTICOS E FILTROS AVANADOS--------------------------------------------------------------------- 47 5.4.1. Filtros Automticos-------------------------------------------------------------------------------------------------- 47 5.4.2. Filtros Avanados --------------------------------------------------------------------------------------------------- 48
6.
FUNES FINANCEIRAS E DE ENGENHARIA ---------------------------------------------------------------- 51 6.1. FUNES FINANCEIRAS ------------------------------------------------------------------------------------------------------- 51 6.2. FUNES DE ENGENHARIA --------------------------------------------------------------------------------------------------- 55
7.
ARRAYS / ANLISE DE TENDNCIA, CRESCIMENTO E PREVISO, TABELAS, GOALSEEK E SOLVER, CONSTRUO DE CENRIOS ------------------------------------------------------------------ 58 7.1. ARRAYS ------------------------------------------------------------------------------------------------------------------------- 58 7.1.1. Frmulas matriz (array) -------------------------------------------------------------------------------------------- 58 7.1.2. Frmula combinao------------------------------------------------------------------------------------------------ 58 7.1.3. Frmula cpia-------------------------------------------------------------------------------------------------------- 59 7.2. FUNES TENDNCIA, CRESCIMENTO E PREVISO------------------------------------------------------------- 60 7.3. TABELA DE DADOS OU DATA TABLE --------------------------------------------------------------------------------------- 61 7.3.1. Tabela de dados baseada numa varivel ------------------------------------------------------------------------- 61 7.3.2. Tabela de dados baseada em duas variveis--------------------------------------------------------------------- 62 7.4. ATINGIR OBJECTIVO OU GOAL SEEK --------------------------------------------------------------------------------------- 62 7.5. SOLVER -------------------------------------------------------------------------------------------------------------------------- 63 7.6. CONSTRUO DE CENRIOS ------------------------------------------------------------------------------------------------- 65
8.
RELATRIOS DE TABELAS E GRFICOS DINMICOS---------------------------------------------------- 69 8.1. CRIAO DE TABELAS / GRFICOS DINMICOS -------------------------------------------------------------------------- 69 8.2. ALTERAO DE UMA TABELA / GRFICO DINMICO -------------------------------------------------------------------- 72
9.
VBA -------------------------------------------------------------------------------------------------------------------------- 73 9.1. O QUE UMA FUNO -------------------------------------------------------------------------------------------------------- 73 9.2. FUNES DO EXCEL ----------------------------------------------------------------------------------------------------------- 73 9.3. COMO CRIAR FUNES ------------------------------------------------------------------------------------------------------- 73 9.4. ONDE DEFINIR A FUNO ---------------------------------------------------------------------------------------------------- 75 9.5. TRABALHAR NO EDITOR DE VBA CRIAR UMA FUNO --------------------------------------------------------------- 76 9.6. EXECUO DE UMA FUNO DENTRO DE UMA CLULA ----------------------------------------------------------------- 77 9.7. UTILIZAO DE VARIVEIS -------------------------------------------------------------------------------------------------- 78 9.7.1. Tipos de variveis --------------------------------------------------------------------------------------------------- 78 9.7.2. Declarao de Variveis-------------------------------------------------------------------------------------------- 79 9.8. ESTRUTURAS DE CONTROLO ------------------------------------------------------------------------------------------------- 80 9.8.1. If-Then-Else ---------------------------------------------------------------------------------------------------------- 80 9.8.2. Select Case ----------------------------------------------------------------------------------------------------------- 84 9.8.3. For Next ------------------------------------------------------------------------------------------------------------ 86 9.8.4. While Wend--------------------------------------------------------------------------------------------------------- 89 9.8.5. Do Loop------------------------------------------------------------------------------------------------------------- 93
Objectivos:
! ! ! ! ! ! ! Conceito de folha de clculo Insero de dados (tipos) Formatao simples Frmulas - operaes aritmticas Modelo de clculo simplificado Referncias relativas, absolutas e mistas Nomes de clulas
Resumo:
Folha de clculo: um conjunto de clulas onde se pode colocar informao e que podem relacionar-se umas com as outras atravs de expresses lgicas e matemticas; uma ferramenta informtica que permite fazer todos os clculos que se pretendem, de forma simples, iterativa ou repetitiva, relacionando os prprios dados que possui nos clculos que faz.
Pelo que ficou dito, uma folha de clculo uma excelente ferramenta de simulao.
Noes: a) barra de ttulo - o espao onde exibido o ttulo da janela;
b) barra de menu - mostra o nome dos diferentes menus relativos aplicao corrente. Cada menu contm vrios comandos; c) barra de ferramentas - contm vrios cones onde se faz um "click" para executar uma tarefa;
d) barra de edio - o espao onde se escrevem as frmulas ou os dados; e) f) barras de rolamento - permitem aceder a reas adjacentes da janela (verticais e horizontais); barra de informao - apresenta informao e controlos relativos ao ficheiro da folha activa.
g) clula - quadro onde os dados so digitados. delimitada pela interseco de uma linha com uma coluna; h) linhas - so seces horizontais ao longo da folha estendida, marcadas de 1 a 65536; i) colunas - so seces verticais ao longo da folha estendida, ordenadas de A a Z e depois de AA a IV, compreendendo 256 colunas;
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Layout do Excel
Livro (workbook) - um conjunto de documentos: folhas de clculo (worksheets) - um mapa composto por clulas que podem conter dados e frmulas. Uma folha pode ainda incorporar outros objectos (grficos, botes,...); grficos (charts); mdulos de cdigo - contm programas escritos em VBA (Visual Basic for Applications); caixas de dilogo; macros do Excel Conjunto de comandos empacotados dentro da entidade Macro.
Quando o excel acaba de ser carregado, o estado do mesmo o de Pronto. Este modo corresponde ao estado de no edio, ou seja, quando o cursor de edio no se encontra activo. Neste modo, a folha de clculo apresenta, em todas as clulas o resultado dos clculos efectuados. O contedo da clula na qual se encontra o cursor de folha apresenta o resultado do clculo da formula que esta tem subjacente. Este modo de trabalho permite activar os diferentes modos de seleco que passamos a descrever: ! Seleco Simples de clulas Com o Rato: o Colocar o cursor num dos cantos do rectngulo de clulas a seleccionar, pressionar a tecla esquerda do rato e arrastar, sem largar a tecla esquerda, at ao canto oposto; o Colocar o cursor num dos cantos do rectngulo de clulas a seleccionar, pressionar a tecla Shift sem largar e fazer click com o ponteiro do rato na clula do canto oposto (Seleco de...at) Com o Teclado: o Colocar o cursor num dos cantos do rectngulo de clulas a seleccionar, pressionar a tecla Shift e deslocar o cursor com as teclas de cursor ! Seleco de Coluna(s) / Linha(s) o Apontar para o cabealho de coluna/linha e fazer click na tecla esquerda do rato. Se pretender seleccionar mais do que uma coluna/linha ento deve repetir o procedimento anterior arrastando o rato em coluna/linha enquanto pressiona a tecla esquerda. ! Seleco de toda a folha o Fazer click com o rato no quadrado de interseco entre os cabealhos de coluna e linha.
Seleco Mltipla o Pode ser aplicada a qualquer dos modos anteriores carregando-se, de seguida, na tecla Control e, sem largar, seleccionar uma nova rea, coluna ou linha.
Neste modo o cursor de edio ( | )encontra-se a piscar ou na linha de edio ou dentro da clula que est a ser editada. Editar significa alterar o contedo de uma clula ou seja, apagar, acrescentar ou alterar.
! Caixa de nome (Contm o endereo da clula onde se encontra o cursor de folha ou o nome da mesma ou do bloco seleccionado) ! Editar Frmula (Chama Wizard da frmula em edio)
Em Modo Edio
! Caixa de nome (Contm o endereo da clula onde se encontra o cursor de folha ou o nome da mesma ou de um bloco seleccionado) ! ! ! Cancelar (Estando em modo edio cancela as alteraes feitas e que ainda no foram validadas com enter) Inserir / Enter (Valida alteraes feitas) Editar Frmula (Chama Wizard da frmula em edio)
INSERO DE DADOS
Colocar o cursor na clula onde ser feita a insero de dados e escrever. O excel passa automaticamente do modo Pronto ao modo Edio. Nmeros alinhados direita Texto alinhado esquerda Frmulas comeam pelo sinal de igual (= ou sinais de + ou -) e executam operaes sobre os valores da folha de clculo
FORMATAO
Em modo Pronto, seleccionar clula(s) a formatar e fazer FORMATARCLULAS
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu OPERANDOS: Um valor que no se altere (valor constante); Uma referncia de clula ou de intervalo; Um rtulo (texto); Um nome ou uma funo de folha de clculo.
10
Exemplos: =2+3*5 resulta 17 =(2+3)*5 resulta 25 = 2>3 resulta Falso ="Ana"&2 resulta Ana2
A partir deste momento, vamos passar a considerar uma folha de clculo como reflexo de um modelo de clculo. O modelo de clculo designa: as variveis independentes, as variveis dependentes, e as expresses que permitam obter o valor das variveis dependentes em funo das variveis independentes. A folha de clculo obtm-se do modelo de clculo fazendo a seguinte correspondncia:
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu - associar a cada varivel do modelo de clculo uma clula da folha de clculo - a uma varivel independente associar uma clula de entrada - a uma varivel dependente associar uma clula de sada (ou seja, com uma frmula);
11
Neste caso podemos, por exemplo, fazer a seguinte correspondncia: x " clula A1 y " clula A2 z " clula A3 Na clula A3 pomos a frmula correspondente ao clculo de z : =A1 + A2 (ou seja a soma das clulas que representam as variveis x e y) E reencontramos a j nossa conhecida folha de clculo: A 1 2 3 Exemplo: Voc vai loja comprar um computador. O vendedor diz-lhe que o computador custa 200c mais IVA. Quanto que paga ? Vamos considerar a resoluo do problema em duas etapas: 1) Definir o modelo de clculo O modelo de clculo pode formular-se assim: Variveis independentes Preo : preo, indicado pelo vendedor Taxa : taxa de IVA Variveis Dependentes IVA : valor do IVA Valor : valor a pagar Expresses IVA = Preo * Taxa Valor = Preo + IVA 9 7 16 # varivel x (entrada) # varivel y (entrada) # varivel z ( clula de Sada ; frmula = A1+A2) B
12
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Se copiar a frmula de B3 para C4 continua a apresentar o valor da clula A2, ou seja, a referncia no se altera apesar de ter sido copiada a frmula.
13
PRATICANDO: Resolva o exerccio seguinte imaginando que copia as frmulas no sentido indicado pelas setas. Identifique a frmula e o valor resultante do processo de cpia.
REFERNCIA CIRCULAR - quando uma frmula se refere, directa ou indirectamente, sua clula (provoca erro) A clula C6 contm a frmula =C5+C6 REFERNCIA A CLULAS NOUTRAS FOLHAS do mesmo livro A clula B3 contm a frmula =Sheet2!A2 $ apresenta o valor uma clula acima e uma clula para a esquerda de B3 na folha Sheet2 REFERNCIAS 3D - referncia a clulas em vrias folhas
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Pode ser utilizado com as seguintes funes: soma, mdia, mdia, contar, contar.val, mximo, mnimo, produto, desvpad,, desvpadp, var e varp. REFERNCIAS EXTERNAS - referncia a clulas de outros livros A clula B3 contm a frmula =[Livro2]Sheet2!$A$2 $ apresenta o valor da clula A2 da folha Sheet2 do livro Livro2 A clula C3 contm a frmula ='c:\excel\[Teorica.xls]Sheet2'!$A$2 $ apresenta o valor da clula A2 da folha Sheet2 do livro Teorica que est localizado na pasta \excel do disco C
14
S podem ser utilizados em frmulas na mesma folha. Seleccionamos a tabela de A3 a D6 e fazemos: InserirNomeCriar e atribumos nome seleco. Com este procedimento crimos, na folha, os seguintes nomes: Produtos, Qtd, Punit, Valor, A, B e C. Se em A10 colocarmos a frmula =B Qtd (note que o operador espao corresponde interseco exclusiva) o resultado ser: $ 200 (clula B5) Se em A10 colocssemos a frmula =B Punit, o resultado seria $ 36 (clula C5)
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu ATRIBUIR NOMES A CLULAS E INTERVALOS Comando Inserir Nome Definir ou Caixa de nome da barra de edio Suponhamos que a clula A1 tem a idade do Jos e que a clula A2 tem a idade da Maria, respectivamente 30 e 29. Se atribuirmos o nome Jos clula A1 e o nome Maria clula A2, a frmula na clula A3 =Jos+Maria d 59. Se copiarmos a frmula para a clula A4 continua a dar 59. Podemos usar nas frmulas nomes de outras folhas e livros.
15
ATRIBUIR NOMES A CONSTANTES E FRMULAS Quando usamos muitas vezes uma valor, por exemplo 17% para a taxa de IVA podemos dar um nome a esse valor sem que ele esteja inserido numa clula. Comando Inserir Nome... Definir... Em Nome no livro escrever Taxa e em Refere-se a escrever 17% A frmula =1000*Taxa d o valor 170
16
Objectivos:
! ! ! ! ! Introduo s funes Criao de funes Funes matemticas/trigonomtricas Funes estatsticas Tipos de erros
Resumo:
FUNO: As funes so frmulas predefinidas que executam clculos utilizando valores especficos, denominados argumentos, numa ordem especfica, denominada sintaxe. Por exemplo, a funo SOMA adiciona valores ou intervalos de clulas. Os argumentos podem ser nmeros, texto, valores lgicos do tipo VERDADEIRO ou FALSO, matrizes, valores de erro do tipo #N/D ou referncias de clula. O argumento dado deve produzir um valor vlido para esse argumento. Os argumentos podem tambm ser constantes, frmulas ou outras funes. A sintaxe de uma funo comea com o nome da funo, seguida de um parntese inicial, dos argumentos para a funo separados por pontos e vrgula e de um parntese final. Se a funo comear com uma frmula, escreva um sinal de igual (=) antes do nome da funo. Se alguma funo no estiver disponvel, execute o programa de configurao para instalar o Analysis ToolPak. Depois da instalao do Analysis ToolPak, deve seleccion-lo e activ-lo no gestor de suplementos. Exemplo: =SOMA(A1:A5;C1:C5;10)
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu ARRED(Num;Num_dgitos) ou ROUND arredonda um valor para um nmero de algarismos especificados. Se Num_dgitos for positivo significa que o Num ser arredondado para o nmero especifico de casas decimais, se for 0 ser arredondado para o inteiro mais prximo e se for negativo ser arredondado para a esquerda da vrgula decimal. =ARRED(953.246;-1) 950 =ARRED(953.246;-2) 1000 =ARRED(953.246;1) 953.2 =ARRED(953.246;2) 953.25 ARRED.PARA.BAIXO ou ROUNDDOWN ARRED.PARA.CIMA ou ROUNDUP MPAR(Num) ou ODD arredonda o nmero por excesso at ao nmero mpar inteiro mais prximo. Os nmeros negativos so ajustado em valor absoluto. =MPAR(2) 3 =MPAR(-2) -3 =MPAR(3) 3 =MPAR(3.1) 5 PAR(Num) ou EVEN ARRED.DEFEITO(Num;Significncia) ou FLOOR Arredonda um nmero para baixo, aproximando-o de zero, at ao mltiplo mais prximo de Significncia. Num e Significncia tm que ser ambos positivos ou ambos negativos. =ARRED.DEFEITO(8.3;3) 6 =ARRED.DEFEITO(8.3;5) 5 ARRED.EXCESSO(Num;Significncia) ou CEILING INT(Num) arredonda um nmero por defeito para o nmero inteiro mais prximo =INT(8.3) 8 =INT(-8.3) -9 =INT(-8.9) -9 TRUNCAR(Num,Num_dgitos) ou TRUNC trunca um nmero para um inteiro removendo a parte fraccional do nmero se Num_dgitos no for definido. Num_dgitos um nmero que especifica a preciso da operao. O valor predefinido para nm_digitos zero. =TRUNCAR(55.987) 55 =TRUNCAR(55.987;2) 55.98 FACTORIAL(Num) ou FACT devolve o factorial de um nmero =FACTORIAL(3) 6
17
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu PRODUTO(Num1;Num2;...) ou PRODUCT devolve o produto dos argumentos SOMARPRODUTO(Matriz1;Matriz2;...) ou SUMPRODUCT multiplica os componentes correspondentes nas matrizes fornecidas e devolve a soma destes produtos. Matriz1,..., de 2 at 30 matrizes cujos componentes deseja multiplicar e depois somar. Os argumentos da matriz tm de ter a mesma dimenso. =SOMARPRODUTO({3;4;8;6;1;9}; {2;7;6;7;5;3}) 3x2+4x7+ ... +9x3 156 QUOCIENTE(Numerador;Denominador) ou QUOTIENT devolve a parte inteira de uma diviso =QUOCIENTE(9;3) 3 =QUOCIENTE(9;2.5) 3 RESTO(Num;Divisor) ou MOD devolve o resto da diviso de Num por Divisor. O resultado tem o sinal do divisor. =RESTO(9;2) 1 =RESTO(9;2.5) 1.5 =RESTO(9;-2.5) -1 =RESTO(10;-2.5) 0 MMC(Num1;Num2;...) ou LCM devolve o menor mltiplo comum =MMC(2;3;4) 12 MDC(Num1;Num2;...) ou GCD devolve o mximo divisor comum =MDC(2;3;4) 1 RAIZQ(Num) ou SQRT devolve a raiz quadrada de um nmero COMBIN(Num;Num_escolhido) devolve o nmero de combinaes para um dado nmero de itens. Num o nmero de objectos e Num_escolhido o nmero de objectos em cada combinao. =COMBIN(2;2) 1 =COMBIN(3;2) 3 =COMBIN(4;2) 6
18
19
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu MNIMO(Num1,Num2;...) ou MIN devolve o valor mnimo de uma lista de argumentos CONTAR(Num1;Num2;...) ou COUNT calcula quantos nmeros existem na lista de argumentos CONTAR.VAL(Num1;Num2;...) ou COUNTA calcula quantos clulas esto preenchidas na lista de argumentos ORDEM(Num;Ref;Ordem) ou RANK devolve a posio de um nmero numa lista de nmeros. Num o nmero cuja posio se deseja conhecer. Ref a matriz (intervalo) onde se vai localizar o nmero e Ordem especifica como posicionar um nmero numa ordem: se 0 ou omitido d por ordem decrescente, se diferente de 0 d por ordem crescente. =ORDEM(3;B1:B6;1) 3 se B1:B6 tiver os seguintes nmeros 3,2,6,2,9,5 =ORDEM(3;B1:B6) 4 se B1:B6 tiver os seguintes nmeros 3,2,6,2,9,5 MAIOR(Matriz;K) ou LARGE devolve o k-simo maior valor de um conjunto de dados. Matriz a matriz ou intervalo de dados cujo maior valor k-simo queremos determinar. K a posio (do maior) na matriz ou intervalo de clula de dados a ser fornecida. =MAIOR({2;5;4;3;6};2) 5 (segundo maior nmero) MENOR(Matriz;K) ou SMALL devolve o k-simo menor valor do conjunto de dados
20
2.6.2. Funo SE ou IF
=SE(teste_condicional; valor_se_verdadeiro; valor_se_falso) Valor_se_verdadeiro o valor fornecido se teste_condicional for VERDADEIRO. Se teste_condicional for VERDADEIRO e valor_se_verdadeiro for omitido, VERDADEIRO ser o resultado. Valor_se_falso o valor fornecido se teste_condicional for FALSO. Se teste_condicional for FALSO e valor_se_falso for omitido, FALSO ser o resultado. =SE(A2>=10;"Aprovado!";"Reprovado!") se o valor da clula A2 for maior ou igual a 10 a funo d Aprovado! seno (se o valor da clula A2 for menor que 10) a funo d Reprovado!.
21
=SE(1;"A";"B") A - porque o Excel entende o 1 como o valor lgico Verdadeiro =SE(FALSO;"A";"B") B =SE(K2;"A";"B") B - se o valor da clula K2 for 0, A - se o valor de K2 no for 0
ENCADEAMENTO DE SE'S Podem ser imbricadas at sete funes SE como argumentos valor_se_verdadeiro e valor_se_falso para construir testes mais elaborados Suponha que quer saber qual a prova que teve a nota mais alta: =SE(MXIMO(B4:B9)>MXIMO(C4:C9);"Teste";SE(MXIMO(B4:B9)=MXIMO(C4:C9);"Ambas";"Trabalho ")) Suponha que quer classificar os alunos numa escala de Suficiente, Bom ou Muito Bom consoante as notas arredondadas para inteiro estejam respectivamente nos seguintes intervalos: de 10 a 14, 15 a 18 e 19 a 20: Na clula F4 ficava a seguinte frmula: =SE(D4>=18.5;"Muito Bom"; SE(D4>14,5;"Bom"; SE(D4>=10;"Suficiente";""))) Se o aluno tiver nota inferior a 9.5 o resultado da frmula uma string (cadeia de caracteres) vazia.
2.6.3. Funes E, OU e NO
E(lgico1; lgico2; ...) ou AND devolve VERDADEIRO se todos os argumentos (at 30) forem verdadeiros, devolve FALSO se um ou mais argumentos forem FALSO. Os argumentos devem ser valores lgicos, matrizes ou referncias que contenham valores lgicos. =E(2=2;3<>2) VERDADEIRO =E(2=2;"Joo"="Joo";"Maria"="Joana") FALSO
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu OU(lgico1; lgico2; ...) devolve VERDADEIRO se qualquer argumento for VERDADEIRO, devolve FALSO se todos os argumentos forem FALSO. =OU(2>2;3<2) FALSO =OU(2=2;"Joo"="Joo";"Maria"="Joana") VERDADEIRO
22
PRATICANDO: Suponha que um aluno s fica aprovado se tiver mdia superior ou igual a 9.5 e tenha em ambas as provas nota superior a 7: =SE(E(D4>=9.5;B4>7;C4>7);"Aprovado";"Reprovado") Suponha que o aluno s fica aprovado se tiver mdia superior ou igual a 9.5 e tenha pelo menos 13 numa das provas: =SE(E(D4>9.5;OU(B4>=13;C4>=13));"Aprovado";"Reprovado")
23
Function Nome_da_funo (argumentos separados por ,) Corpo da funo End funcion Os argumentos das funo tm o nome de parmetros formais O corpo da funo uma expresso que vai ter um valor quando os parmetros formais forem substitudos por valores (parmetros reais) Exemplo: Criar uma funo para calcular o quadrado da soma de dois nmeros.
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu As funes criadas pelo utilizador ficam disponveis no comando Inserir Funo na categoria Definidas pelo utilizador.
24
25
INFORMAO(texto_tipo) ou INFO devolve informaes sobre o ambiente de trabalho actual. Ver Ajuda/Help para ver as vrias possibilidades para texto_tipo =INFORMAO("directrio") devolve o caminho da pasta actual =INFORMAO("release") devolve a verso do Excel MPAR(nm) ou ISODD devolve VERDADEIRO se nm truncado para for mpar PAR(nm) ou ISEVEN devolve VERDADEIRO se nm truncado for par =PAR(2) VERDADEIRO =PAR(3.3) FALSO =PAR(2.6) VERDADEIRO =MPAR(2) FALSO
Exemplo:
Preencher a coluna do saldo de modo a que: No aparea nada ("") se o Tipo e o Valor no estiverem preenchidos: se o Saldo anterior tiver Erro! se o Saldo anterior for uma String vazia Aparea Erro! se o Tipo no for nem d (dbito) ou c (crdito) se o Valor no for um nmero ou uma frmula se o Valor estiver em branco (0) Aparea o saldo da conta se tudo bem
26
27
Objectivos:
! ! ! Funes de data e hora Funes matemticas Aleatrio e Aleatrioentre Modelo de simulao
Resumo:
Introduo: A unidade de tempo no Excel para o Windows o dia. Cada dia representado por um nmero de srie de 1 a 65380 (?), correspondendo s datas de 1 de Janeiro de 1900 a 31 de Dezembro de 2078 (?). Quando introduzimos uma data na folha de clculo, essa data guardada como um nmero de srie. Nmero esse que corresponde ao nmero de dias que passaram desde 1 de Janeiro de 1900 at data introduzida. Os nmeros direita do ponto decimal no nmero de srie representam as horas a contar da meia-noite. Por exemplo 0.5 representa o meio-dia porque a diferena do meio-dia para a meia-noite exactamente igual a meio dia. O nmero de srie 367.5 representa, ento, a combinao de data-hora: 12:00 de 1 de Janeiro de 1901. Assim, porque as datas e horas so nmeros podemos criar frmulas para trabalhar com as datas e horas. Para introduzirmos datas no necessitamos, felizmente, de saber os nmeros de srie correspondentes. Podemos introduzir datas nos seguintes formatos: d-m-yy d-mmm-yy d-m o ano fica, por defeito, o ano corrente mmm-yy o dia fica, por defeito, o dia 01 com: d - corresponde ao dia do ms (1..31) m - corresponde ao ms do ano em nmero (1..12) mmm - corresponde ao ms do ano em texto (Jan...Dez) yy - corresponde ao ano h:mm AM/PM os segundos ficam, por defeito, 00 h:mm:ss AM/PM h:mm h:mm:ss com: h - corresponde hora - se no for indicado AM/PM o Excel assume as horas de 1..24
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu mm - corresponde aos minutos ss - corresponde aos segundos Para introduzir uma data entre: [1/Jan/1900 ; 31/Dez/1929] o ano tem que vir yyyy (25-11-1925) [1/Jan/1930 ; 31/Dez/2029] o ano tem que vir yy (25-11-25) [1/Jan/2030 ; 31/Dez/2078] o ano tem que vir yyyy (25-11-2050) O Excel assume logo uma formatao de data, pelo que no visualizamos o nmero de srie correspondente. Para sabermos qual o nmero podemos formatar as clulas com datas para nmero. Como as datas so nmeros podemos testar se introduzimos correctamente uma data pelo modo como fica alinhada na clula: se direita introduzimos bem, se esquerda introduzimos de uma forma incorrecta.
28
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu ANO(nm_srie) ou YEAR devolve o ano correspondente a nm_srie. O ano fornecido como um nmero inteiro no intervalo 1900-2078 (?) DIA.SEMANA(nm_srie; Tipo_devolvido) ou WEEKDAY devolve o dia da semana correspondente a nm_srie. O dia devolvido como um nmero inteiro que varia entre 1 (Domingo) e 7 (Sbado) se Tipo_devolvido for 1 ou omitido. Se o Tipo_devolvido for 2 ento devolve de 1 (Segunda-feira) a 7 (Domingo), se o Tipo_devolvido for 3 ento devolve de 0 (Segunda-feira) a 6 (Domingo). Considerando que hoje dia 4 de Novembro de 1998 =DIA.SEMANA(HOJE()) 4 se formatar para dddd d Quarta-feira =DIA.SEMANA(HOJE();2) 3 se formatar para dddd d Tera-feira (o que incorrecto) =DIA.SEMANA(HOJE();3) 2 se formatar para dddd d Segunda-feira (o que incorrecto) DATA(ano; ms; dia) ou DATE devolve o nmero de srie de uma determinada data. Se ms for maior que 12, ento ms somar este nmero de meses ao primeiro ms do ano especificado ou mesmo acontecendo para dia. =DATA(1998;13;4) d o nmero de srie correspondente a 4 de Janeiro de 1999 FIMMS(data_inicial; meses) ou EOMONTH devolve o nmero de srie da data para o ltimo dia do ms, que o nmero indicado de meses antes ou depois de data_inicial. Meses o nmero de meses antes (se for negativo) ou depois (se for positivo) da data_inicial. =FIMMS(DATA(1998;11;11);1) d o nmero de srie correspondente a 31/Dez/1998 DIATRABALHO(data_inicial; dias; feriados) ou WORKDAY devolve o nmero de srie correspondente ao nmero indicado de dias teis antes ou depois de data_inicial. Os dias teis excluem fins de semana ou quaisquer datas identificadas como feriados. Feriados opcional e pode ser uma matriz ou um intervalo de um ou mais nmeros de srie de data a serem eliminados do calendrio de dias teis. =DIATRABALHO(DATA(98;12;7);2) 9/Dez/98 =DIATRABALHO(DATA(98;12;7);2;{"1-12-98";"8-12-98"}) 10/Dez/98 DIATRABALHOTOTAL(data_inicial; data_final; feriados) ou NETWORKDAYS devolve o nmero de dias teis inteiros entre data_inicial e data_final. Os dias teis excluem os fins de semana e quaisquer datas identificadas em feriados =DIATRABALHOTOTAL("7-12-98";"10-12-98") 4 =DIATRABALHOTOTAL("7-12-98";"10-12-98";{"1-12-98";"8-12-98"}) 3 HORA(nm_srie) ou HOUR devolve a hora correspondente a nm_srie. A hora devolvida como um nmero inteiro, que pode variar entre 0 (12:00 A.M.) e 23 (11:00 P.M.). O nm_srie pode ser dado como texto, "16:48:00" ou "4:48:00 PM", em vez de um nmero. MINUTO(nm_srie) ou MINUTE devolve o minuto correspondente a nm_srie. O minuto fornecido como um nmero inteiro, entre 0 e 59 SEGUNDO(nm_srie) ou SECOND devolve o segundo correspondente a nm_srie. O segundo fornecido como um nmero inteiro no intervalo de 0 a 59
29
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu TEMPO(hora; minutos; segundos) ou TIME devolve o nmero de srie de uma hora particular. O nmero de srie devolvido uma fraco decimal que varia de 0 a 0,99999999. Hora um nmero de 0 a 23 que representa a horas, minutos um nmero de 0 a 59 que representa os minutos e segundos um nmero de 0 a 59 que representa os segundos. Se minutos for maior que 59, ento minutos aumentar o nmero de horas o mesmo acontecendo aos minutos quando os segundos forem superiores a 59. =TEMPO(3;60;61) d o nmero de serie correspondente a 4:01:01
30
Exemplos: Calcular o nmero de horas, minutos e segundos que uma mquina trabalhou num dia.
31
Exemplos: Calcular o nmero de notas positivas em cada uma das provas: Na clula B12 =CONTAR.SE(B4:B9;">=10") copiar para a clula C12 Calcular o nmero de notas 10 em cada uma das provas: Na clula B14 =CONTAR.SE(B4:B9;10) copiar para a clula C14 Calcular a mdia dos alunos aprovados: Na clula D13 =SOMA.SE(E4:E9;"Aprovado";D4:D9)/CONTAR.SE(E4:E9;"Aprovado")
32
33
4. FUNES DE TEXTO: LOWER, UPPER, LEFT, RIGHT, FIND, SUBST E FUNES DE CONSULTA EM TABELAS: VLOOKUP, HLOOKUP
Objectivos:
! ! Funes de texto Funes de consulta e referncia
Resumo:
Funes de texto: Com as funes de texto, podemos manipular cadeias de texto em frmulas. TEXTO(valor; formato_texto) ou TEXT converte um valor para texto num formato numrico especfico. O formato_texto um formato em texto do comando Formatar Clulas... Nmero
NM.CARACT(texto) ou LEN devolve o nmero de caracteres numa cadeia de texto. =NM.CARACT("Informtica de Empresa") 22 =N M.CARACT("") 0 =NM.CARACT(245) 3 =NM.CARACT(245.7) 5
COMPACTAR(texto) ou TRIM remove todos os espaos do texto excepto os espaos nicos entre palavras. =COMPACTAR("Informtica de Empresa ") Informtica de Empresa
MINSCULAS(texto) ou LOWER converte as letras maisculas para minsculas MAISCULAS(texto) ou UPPER converte as letras minsculas para maisculas INICIAL.MAISCULA(texto) ou PROPER coloca a primeira letra do texto em maiscula e todas as outras letras do texto depois de qualquer carcter diferente de uma letra. Converte todas as outras letras para minsculas.
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Exemplos: Considere que a clula A12 tem o seguinte texto: Inf. empresa A1 sala 1SE1 =MAISCULAS(A12) INF. EMPRESA A1 SALA 1SE1 =MINSCULAS(A12) inf. empresa a1 sala 1se1 =INICIAL.MAISCULA(A12) Inf. Empresa A1 Sala 1Se1
34
EXACTO(texto1; texto2) ou EXACT compara duas cadeias de texto e devolve VERDADEIRO se forem exactamente iguais, caso contrrio, devolve FALSO. A funo distingue entre letras maisculas e minsculas, mas ignora as diferenas de formatao. =EXACTO(22;22) VERDADEIRO =EXACTO("Informtica";"informtica") FALSO
ESQUERDA(texto; nm_caract) ou LEFT devolve nm-caract mais esquerda numa cadeia de texto. Se nm_caract for omitido considerado 1. DIREITA(texto; nm_caract) ou RIGHT devolve nm-caract mais direita numa cadeia de texto. Se nm_caract for omitido considerado 1. SEG.TEXTO(texto; nm_inicial; nm_caract) ou MID devolve um nmero especfico de caracteres (nm_caract) da cadeia de texto (texto), comeando na posio nm_inicial.
Exemplos: Considere que a clula A14 tem o seguinte texto: Informtica de Empresa =ESQUERDA(A14) I =ESQUERDA(A14;3) Inf =DIREITA(A14;3) esa =SEG.TEXTO(A14;8;7) tica de =DIREITA(1998;2) 98
LOCALIZAR(texto_a_localizar; no_texto; nm_inicial) ou FIND localiza uma cadeia de texto (texto_a_localizar) dentro de outra cadeia de texto (no_texto) e devolve o nmero de carcter onde texto_a_localizar ocorre pela primeira vez. Nm_inicial o nmero do carcter a partir do qual ser feita a pesquisa, se omitido 1. Se texto_a_localizar for um texto vazio a funo devolve o primeiro carcter da cadeia de procura. A funo distingue maisculas e minsculas e no aceita caracteres globais (? e *). =LOCALIZAR("e";"Informtica de Empresa") 14
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu =LOCALIZAR("E";"Informtica de Empresa") 16 =LOCALIZAR("e";"Informtica de Empresa";15) 20 =LOCALIZAR(1;258111;1) 4 PROCURAR(texto_procurado; no_texto; nm_inicial) ou SEARCH devolve o nmero de carcter onde texto_procurado ocorre pela primeira vez. Pode utilizar-se os caracteres globais ? (um carcter) e * (srie de caracteres) no texto_procurado. Para procurar um ? ou um * temos que fazer ~? ou ~*. A funo no distingue maisculas e minsculas. =PROCURAR("e?";"Informtica de Empresa") 14 =PROCURAR("e*";"Informtica de Empresa") 14 =PROCURAR("e?a";"Informtica de Empresa") 20 =PROCURAR(11;1258111;1) 5
35
SUBSTITUIR(texto_antigo; nm_inicial; nm_caract; novo_texto) ou REPLACE substitui parte de uma cadeia de texto por uma cadeia diferente. Texto_antigo o texto no qual deseja mudar alguns caracteres. Nm_inicial a posio do carcter em texto_antigo que deseja substituir por novo_texto. Nm_caract o nmero de caracteres em texto_antigo que deseja substituir por novo_texto. Novo_texto o texto que substituir os caracteres em texto_antigo. =SUBSTITUIR("1990"; 3; 2; "91") 1991 =SUBSTITUIR("A7";1;1;"G") G7 =SUBSTITUIR("A7";1;0;"G") GA7
SUBST(texto; texto_antigo; novo_texto; nm_da_ocorrncia) ou SUBSTITUTE coloca novo_texto no lugar de texto_antigo numa cadeia de texto (texto). Nm_da_ocorrncia especifica que ocorrncia de texto_antigo se deseja substituir por novo_texto. Se indicar nm_da_ocorrncia, apenas essa ocorrncia de texto_antigo ser substituda, seno cada ocorrncia de texto_antigo em texto alterada para novo_texto. =SUBST("Trimestre 1, 1991"; "1"; "2"; 1) Trimestre 2, 1991 =SUBST("Trimestre 1, 1991"; "1"; "2"; 3) Trimestre 1, 1992 =SUBST("Trimestre 1, 1991"; "1"; "2") Trimestre 2, 2992
REPETIR(texto; nm_vezes) ou REPT repete um texto (texto) um determinado nmero de vezes (nm_vezes). Nm_vezes um nmero positivo, se for 0 d texto vazio, se no for um inteiro, ser truncado. O resultado da funo no pode ser superior a 255 caracteres. =REPETIR("Hi!";4) d Hi!Hi!Hi!Hi!
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu VALOR(texto) ou VALUE converte texto num nmero. Texto pode estar em qualquer um dos formatos numrico constante, data ou horas. Normalmente no preciso utilizar a funo VALOR numa frmula pois o Excel converte automaticamente texto em nmeros.
36
Os computadores utilizam nmeros para representar caracteres. A tabela mais utilizada a ASCII (American Standard Code for Information Interchange) que recorre a um nmero entre 1 e 255 para representar cada letra, nmero e smbolo. CARCT(nm) ou CHAR devolve o carcter especificado pelo nmero de cdigo =CARCT(55) 7 =CARCT(75) K =CARCT(107) k
CDIGO(texto) ou CODE devolve um cdigo numrico para o primeiro carcter de uma srie de texto =CDIGO(77) 55 =CDIGO("K") 75 =CDIGO(CARCT(107)) 107
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Valor_procurado o valor utilizado para localizar o valor desejado numa tabela. Valor_procurado o valor que deseja fazer corresponder com matriz_procurada e pode ser um valor (nmero, texto ou valor lgico) ou uma referncia de clula de um nmero, texto, ou valor lgico. Matriz_procurada um intervalo que contm valores possveis de procura e pode ser uma matriz ou uma referncia matricial. Tipo_correspondncia o nmero -1, 0 ou 1 que especifica o tipo de correspondncia. Se tipo_correspondncia for 1 ou omitido, a funo procura o maior valor que for menor ou igual a valor_procurado e a matriz_procurada deve ser posicionada por ordem ascendente: ...-2, -1, 0, 1, 2,...A-Z, FALSO, VERDADEIRO. Se tipo_correspondncia for 0, procura o primeiro valor que for exactamente igual a valor_procurado e a matriz_procurada pode ser colocada em qualquer ordem. Se tipo_correspondncia for -1, procura o menor valor que for maior ou igual a valor_procurado e a matriz_procurada deve ser posicionada em ordem descendente: VERDADEIRO, FALSO, Z-A,...2, 1, 0, -1, -2,... e assim por diante. A funo no faz distino entre letras maisculas e minsculas.
37
PROCV(valor_procurado; matriz_tabela; nm_ndice_coluna; procurar_intervalo) ou VLOOKUP Localiza um valor especfico na primeira coluna esquerda de matriz_tabela e devolve o valor na clula indicada por nm_ndice_coluna. Valor_procurado o valor a ser encontrado na primeira coluna da matriz. Valor_procurado pode ser um valor, uma referncia ou uma cadeia de texto. Matriz_tabela o intervalo em que os dados so procurados. Se procurar_intervalo for VERDADEIRO, os valores na primeira coluna de matriz_tabela devero estar em ordem ascendente: ..., -2, -1, 0, 1, 2, ... , A-Z, FALSO, VERDADEIRO, se localizar_intervalo for FALSO a matriz_tabela no precisa de estar ordenada.
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Nm_ndice_coluna o nmero da coluna em matriz_tabela a partir do qual o valor correspondente deve ser devolvido. Um nm_ndice_coluna de 1 devolve o valor na primeira coluna em matriz_tabela. Localizar_intervalo um valor lgico que especifica se quer que a funo realize uma procura exacta (FALSO) ou por intervalos (VERDADEIRO ou omitida), Se uma correspondncia exacta no for encontrada devolvido o valor maior mais prximo que seja menor que o valor_procurado. =PROCV("Joo";A4:E9;5) Reprovado =PROCV("Joana";A4:E9;5) Aprovado (ateno - d o Carlos) =PROCV("Joana";A4:E9;5;False) #N/D (procura exacta)
38
PROCH(valor_procurado; matriz_tabela; nm_ndice_lin; localizar_intervalo) ou HLOOKUP Localiza um valor especfico na linha superior de uma matriz e devolve o valor na clula indicada.
PROC ou LOOKUP tem duas formas: Forma vectorial (um vector uma matriz que contm apenas uma linha ou uma coluna) PROC(valor_procurado; vector_proc; vector_result) procura por intervalos valor_procurado no vector_proc (deve estar por ordem ascendente), move-se para a posio correspondente a vector_result (tem que ter o mesmo tamanho de vector_proc) e devolve este valor =PROC("Joo";A4:A9;E4:E9) Reprovado =PROC("Joana";A4:A9;E4:E9) Aprovado (mas, ateno - procura por intervalos)
Forma matricial (forma a evitar, dar preferncia ao PROCV e ao PROCH) PROC(valor_procurado; matriz) procura por intervalos o valor especfico na primeira linha ou coluna de uma matriz (tem que estar ordenada por ordem ascendente), desce ou cruza para a clula anterior, e devolve o valor da ltima linha ou coluna. Se a matriz for quadrada ou cobrir uma rea que apresente a largura maior do que a altura (mais colunas do que linhas) procura valor_procurado na primeira linha. Se a matriz apresentar a altura maior que a largura (mais linhas do que colunas) procura na primeira coluna. =PROC("Joo";$A$4:$E$9) Reprovado (devolve o valor da ltima coluna)
NDICE ou INDEX Forma matricial devolve sempre um valor ou uma matriz de valores. NDICE(matriz; nm_linha; nm_coluna) devolve o valor de um elemento numa matriz, seleccionado pelos ndices do nmero de linha (nm_linha) e coluna (nm_coluna). =NDICE(A4:E9;3;2) 9
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu NDICE(ref; nm_linha; nm_coluna; nm_rea) devolve a referncia da clula na interseco da linha (nm_linha) e coluna (nm_coluna) especificadas. Se nm_linha ou nm_coluna for 0, a funo devolve a matriz de valores para a coluna ou linha inteira, respectivamente. Quando em ref indicamos mais de uma rea temos que colocar ref entre parntesis (A4:B9;E4:E9) e, nm_rea selecciona o intervalo em ref a partir do qual deve ser fornecida a interseco de nm_linha com nm_coluna. A primeira rea seleccionada ou inserida recebe o nmero 1, a segunda recebe o nmero 2 e assim por diante. Se nm_rea for omitido, a funo considera a rea 1. =SOMA(NDICE(A4:E9;0;2)) =SOMA(B4:B9) 80 =NDICE((A4:B9;E4:E9);2;1;2) a referncia E5 que tem Aprovado
39
Exerccio: Considere uma loja de informtica que vende Hardware (HW), Software (SW) e Livros (LI). Para cada transaco (venda) O Cdigo do Artigo composto por: Os dois primeiros caracteres indicam categoria do artigo. O 3 e 4 caracteres indicam o fornecedor. Os outros qual o artigo. Cdigos do IVA: 0 Isento, 1 - 5%, 2 - 12% e 3 - 17% Pretende-se: a) Calcular o valor total c/ IVA de cada artigo 1. Construir uma tabela auxiliar com os cdigos e taxas de IVA (C12:D15) 2. Na clula F5 -> =C5*D5*(1+PROCV(E5;C$12:D$15;2;FALSO)) 3. Copiar para as clulas F6:F9 b) Calcular a quantidade vendida de jogos 1. Na clula G5 -> =DIREITA(B5;NM.CARACT(B5)-4) 2. Copiar para baixo 3. Numa clula qq. =SOMA.SE(G5:G9;"Games";C5:C9) 10 c) Calcular o valor do fornecedor MS 1. Na clula H5 -> =SEG.TEXTO(B5;3;2) 2. Copiar para baixo 3. Numa clula qq. =SOMA.SE(H5:H9;"MS";F5:F9) 187200 d) Calcular o valor da categoria HW 1. Na clula I5 -> =ESQUERDA(B5;2) 2. Copiar para baixo
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu 3. Numa clula qq. =SOMA.SE(I5:I9;"HW";F5:F9) 468000
40
41
Objectivos:
! ! ! Tabelas Funes de base de dados Critrios
Resumo:
Tabelas: Uma maneira de armazenar dados relacionados (facturas, clientes, ...) numa folha de clculo atravs de uma tabela (ou lista ou base de dados). Numa base de dados as linhas so registos e as colunas so os campos. A primeira linha da lista contm rtulos (nomes) para as colunas (campos).
Exemplo:
42
Exemplo:
A frmula em C24 vai contar o nmero de clulas preenchidas no campo Curso da lista que est A3:F10, desde que o campo Curso seja igual a OGE. O Excel s vai considerar para esta operao (funo) os registos que obedecem ao critrio indicado em B23:B24.
Funo BDOBTER: Devolve um valor nico de uma coluna de uma lista que corresponde ao critrio indicado.
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Se nenhum registo satisfizer os critrios, a funo devolve o valor de erro #VALOR!, e se houver mais do que um registo a satisfazer os critrios, a funo devolve o valor de erro #NM!.
43
5.3.CONSTRUO DE CRITRIOS
5.3.1. Critrios comparados simples
Para localizar linhas numa lista que contenha um valor exacto, escreva o texto, nmero, data ou valor lgico na clula existente abaixo do rtulo de critrio. Quando utiliza texto como critrio o Excel localiza todos os itens comeados por esse texto. B 25 26 Curso OGE
Considera todos os registos cujo o campo Curso comea por OGE Para que s sejam localizados os itens que contenham apenas o texto especificado (OGE), o critrio tem que ter a frmula seguinte, ="=OGE" B 25 26 Critrios com datas B 25 26 Data Nascimento 15-06-74 Curso =OGE
Considera todos os registos cujo o campo Data Nascimento exactamente igual a 15-06-74.
Para localizar valores de texto que tenham apenas alguns caracteres em comum, utilize um Wildcard (? Para um carcter e * para um conjunto de caracteres. Para procurar um ? ou um * tenho que inserir um ~ antes do ? ou *. Por exemplo ~?OGE~?, procurava o texto ?OGE? B 25 26 Curso ?G*
Considera todos os registos cujo o campo Curso comea por um carcter qualquer seguido de um G
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Critrios com operadores de comparao B 25 26 Data Nascimento >=15-06-74
44
Considera todos os registos cujo o campo Data Nascimento maior ou igual a 15-06-74.
Considera todos os registos cujo o Curso comea por OGE e Mdia maior ou igual a 14. B 25 26 Mdia >=14 Mdia <19 C
Considera todos os registos com Mdia superior ou igual a 14 mas inferior a 19.
Considera todos os registos cujo Curso comea por OGE ou por FIN ou por GEI.
45
Considera todos os registos cujo Curso comea por OGE ou cuja Mdia maior ou igual a 14. B 25 26 27 28 Curso OGE FIN >=14 C Mdia
Considera todos os registos com Curso comeado por OGE, ou Curso comeado por FIN ou Mdia superior ou igual a 14. B 25 26 27 Curso OGE FIN Mdia >=14 C
Para localizar linhas que correspondam a uma de duas condies numa coluna e a uma de duas condies noutra coluna, escreva os critrios em linhas separadas. Por exemplo, o intervalo de critrios seguinte apresenta as linhas que contm "Dias" na coluna Vendedor e valores de vendas superiores a 3.000 contos ou as linhas para o vendedor "Borges" com valores de vendas superiores a 1.500 contos.
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Na clula B26 aparecia VERDADEIRO, o que no tem importncia nenhuma na avaliao que o Excel faz ou fazemos: B 25 26 Superior mdia =Mdia>Mdia(E$4:E$10)
46
Na clula B26 aparecia FALSO, o que no tem importncia nenhuma na avaliao que o Excel faz. Ambos os critrios conduzem ao mesmo resultado, ou seja: Consideram todos os registos cujo campo Mdia tem um valor superior mdia aritmtica do campo Mdia. Normalmente temos que inserir as funes utilizadas em critrios com referncias absolutas. Isto porque o Excel ao avaliar se um registo satisfaz um critrio como se copiasse o critrio para as linhas (registos) em baixo. A frmula utilizada para uma condio tem de fazer referncia ao rtulo de coluna (por exemplo, Mdia) ou referncia ao campo correspondente no primeiro registo (por exemplo E4). Pode utilizar um rtulo de coluna na frmula em vez de uma referncia relativa de clula ou de um nome de intervalo. Quando o Excel apresentar um valor de erro tal como, #NOME? ou #VALOR!, na clula que contm o critrio, poder ignor-lo porque no afecta o modo como a lista analisada. B 25 26 Curso e mdia =E(D4="OGE";E4>=14)
Considera todos os registos cujo Curso igual a OGE e Mdia maior ou igual a 14.
47
Esta opo colocou, em cada nome de campo, a possibilidade de abrir uma janela que contm vriasopes de filtragem da tabela. Agora, dentro de cada campo, possvel efectuar os seguintes filtros:
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Este tipo de filtro apenas permite fazer a operao lgica E entre campos. Dentro do mesmo campo podemos, atravs da opo Personalizar, fazer E ou Ou utilizando os seguintes operadores de comparao:
48
Exemplo: Se pretendessemos filtrar a Tabela para visualizarmos apenas os alunos com trabalho realizado em Banco obteramos o seguinte resultado:
Note-se que, quando uma Tabela se encontra filtrada, os nmeros das linhas e a seta do campo atravs do qual se filtrou a Tabela encontram-se a azul.
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Quando acedemos a esta opo atravs de Dados Filtro Filtro Avanado, somos confrontados com os seguintes elementos:
49
A opo Filtrar Lista no local (in place) significa que a tabela ser ela prpria filtrada aps a execuo do comando, ou seja, depois de executado o comando, o nmero de registos visveis na tabela sero apenas aqueles que satisfazem o(s) critrio(s) definido(s). A opo Copiar para outro local obrigaria a definir uma zona para a extraco dos registos em Copiar para (que desta feita ficaria activo). A rea de extraco pode ser criada definindo todos ou apenas alguns dos campos da tabela para os quais ser feita a extraco dos registos que passem pelo critrio definido. Enquanto as opes anteriores funcionam em alternativa, a opo Intervalo da Lista deve ser preenchida com a rea da Tabela ou nome da mesma (caso tenha sido criado um nome para a Tabela). Em rigor, se precedermos as opes Dados Filtro Filtro Avanado com a colocao do cursor da folha dentro da Tabela, o Excel automaticamente selecciona a Tabela de dados. Na zona reservada ao Intervalo de Critrios devemos colocar a rea dentro da qual se situam os critrios com os quais pretendemos filtrar a Tabela.
Exemplo: Para filtrar a Tabela, podamos definir como critrio: Todos os indivduos do Sexo F ou Trabalho em Banco teramos que definir o critrio do seguinte modo A 13 14 15 Ou Todos os indivduos do Sexo F e Trabalho em Banco teramos que definir o critrio do seguinte modo A 16 17 F Sexo B Trabalho Banco F Banco Sexo B Trabalho
50
Na zona referente ao Intervalo de Critrios teramos que definir a rea ou o nome do critrio pretendido, ou seja, no primeiro caso $A$13:$B$15 e, no segundo caso, $A$16:$B$17. Filtrando a Tabela no Local teramos como resultado, no primeiro caso:
51
Objectivos:
Funes financeiras Funes de engenharia
Resumo:
Funes financeiras: Na matemtica financeira o dinheiro tem um preo. E para ver como assim basta pensar no seguinte exemplo: melhor 1000$ hoje ou 1200$ daqui a um ano?
VA(taxa; nper; pgto; vf; tipo) ou PV devolve o valor actual de um investimento onde: Taxa a taxa de juro por perodo; Nper o nmero total de perodos de pagamento; Pgto o pagamento feito em cada perodo (capital + juros) e no pode mudar durante a vigncia do investimento;
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Vf o valor futuro ou um saldo de caixa, que deseja obter depois do ltimo pagamento. Se vf for omitido, ser considerado 0 (o valor futuro de determinado emprstimo, por exemplo, 0); Tipo o nmero 0 se o vencimento dos pagamentos for no fim do perodo ou 1 se for no incio do perodo.
52
VF(taxa; nper; pgto; vp; tipo) ou FV devolve o valor futuro de um investimento de acordo com os pagamentos peridicos e constantes e com uma taxa de juros constante onde: Vp o valor presente ou a soma total correspondente ao valor presente de uma srie de pagamentos futuros. Se vp for omitido, ser considerado 0.
Exemplos: melhor 1000$ hoje ou 1200$ daqui a um ano? Temos que ver quanto que valem os 1200$ hoje: =VA(2%;1;;1200;0) -> -1,176$47 o que significa que eu estou disposto a pagar hoje 1,176$47 para obter daqui a um ano 1,200$, por isso melhor ter 1,200$ daqui a um ano; ou Temos que ver quanto valem os 1000$ daqui a um ano: =VF(2%;1;;1000;0) -> -1,020$00 o que significa que se eu investir hoje 1000$ estou disposto a receber 1020$ daqui a um ano, por isso melhor ter 1,200$ daqui a um ano.
PGTO(taxa; nper; pv; fv; tipo) ou PMT devolve o pagamento peridico de uma anuidade de acordo com pagamentos constantes e com uma taxa de juro constante. PPGTO(taxa; perodo; nper; va; vf; tipo) ou PPMT devolve o pagamento de capital para determinado perodo de investimento, de acordo com pagamentos constantes e peridicos e uma taxa de juro constante. IPGTO(taxa; perodo; nper; va; vf; tipo) ou IPMT devolve o pagamento de juros para um determinado perodo de investimento, de acordo com pagamentos peridicos e constantes e com uma taxa de juros constante. TAXA(nper; pgto; va; vf; tipo;estimativa) ou RATE devolve a taxa de juro por perodo de uma anuidade. NPER(taxa; pgto; va; vf; tipo) ou NPER devolve o nmero de perodos para investimento de acordo com pagamentos constantes e peridicos e uma taxa de juros constante.
53
Exemplo:
VAL(taxa; valor1; valor2; ...) ou NPV devolve o valor lquido actual de um investimento, baseado numa srie de fluxos monetrios peridicos e numa taxa de desconto, onde: Valor1; valor2;... so entre 1 e 29 argumentos que representam os pagamentos e a receitas do investimento. Valor1; valor2;...tm de ter o mesmo intervalo de tempo entre eles e ocorrer no final de cada perodo; A taxa pode representar a taxa de inflao ou a taxa de juros de um investimento concorrente, deve representar o que queremos ganhar com o investimento..
TIR(valores; estimativa) ou IRR devolve a taxa de retorno interna de uma srie de fluxos monetrios representada pelos nmeros em valores, onde: Valores uma matriz ou uma referncia a clulas que contm nmeros cuja taxa de retorno interna se deseja calcular, deve conter, pelo menos, um valor positivo e um valor negativo para calcular a taxa de retorno interna; Estimativa um nmero que se estima estar prximo do resultado de TIR
54
Exemplo:
Funes para calcular depreciaes: AMORT(custo; val_residual; vida_til) ou devolve a amortizao em linha recta de um activo durante um perodo, onde: Custo o custo inicial do activo; Val_residual o valor no final da amortizao ou valor residual; Vida_til o nmero de perodos nos quais o activo se amortiza.
Exemplo: Uma empresa adquiriu um veculo por 3000 contos com uma vida til de 4 anos e pratica amortizaes pelo mtodo das quotas constantes. Calcular o valor da amortizao anual: =AMORT(3000000;0;4) d 750,000.00 Esc
Funes para converter taxas: EFECTIVA(taxa_nominal; nm_por_ano) ou EFFECT devolve a taxa anual de juros efectiva, dada a taxa nominal de juros anuais e o nmero de perodos compostos por ano. NOMINAL(taxa_efectiva; nm_por_ano) ou NOMINAL devolve a taxa de juro nominal anual dada a taxa efectiva e o nmero de perodos compostos por ano.
55
Exemplos: Pretendendo efectuar um depsito a prazo por seis meses (vencendo juros semestralmente) o Sr. Manifesto consultou dois bancos, tendo-lhe sido fornecidas as seguintes taxas de juro anuais: Banco X 16.5% efectiva Banco Y 16.0% nominal Em que banco dever fazer o depsito?
CONVERTER (nm; de_unidade; para_unidade) converte um nmero de um sistema de medida para outro, onde: Nm o valor em de_unidade a converter. De_unidade a unidade do nmero. Para_unidade a unidade do resultado. A funo aceita os seguintes valores de texto para de_unidade e para_unidade:
Peso e massa
Grama Libra massa Massa em libras (peso) U (unid. de massa atmica) Massa em onas (peso)
Distncia
Metro Milha inglesa Milha martima Polegada P Jarda ngstrom Pica (1/72 pol.)
De_unidade ou para_unidade "m" "mi" "Nmi" "in" "ft" "yd" "ang" "Pica"
56
TEMPO
De_unidade ou para_unidade "yr" "day" "hr" "mn" "sec" De_unidade ou para_unidade "Pa" "atm" "mmHg" De_unidade ou para_unidade "N" "dyn" "lbf" De_unidade ou para_unidade "J" "e" "c" "cal" "eV" "HPh" "Wh" "flb" "BTU"
POTNCIA
De_unidade ou para_unidade "HP" "W" De_unidade ou para_unidade "T" "ga" De_unidade ou para_unidade "C" "F" "K" De_unidade ou para_unidade "tsp" "tbs" "oz" "cup" "pt" "uk_pt" "qt" "gal" "l"
Joule Erg Caloria termodinmica Caloria IT Eletro-volt Cavalo-potncia-hora Watt-hora P-libra BTU
Colher de ch Colher de sopa Ona fluida Chvena Pinto U.S. Pinto U.K. Quarto Galo Litro
57
Os seguintes prefixos de unidades abreviados podem ser anexados a qualquer valor mtrico de_unidade ou para_unidade. Prefixo hexa peta tera giga mega quilo hecto deca deci centi mili micro nano pico fento ato Multiplicador 1E+18 1E+15 1E+12 1E+09 1E+06 1E+03 1E+02 1E+01 1E-01 1E-02 1E-03 1E-06 1E-09 1E-12 1E-15 1E-18 Abreviatura "E" "P" "T" "G" "M" "k" "h" "e" "d" "c" "m" "u" "n" "p" "f" "a"
Exemplos: CONVERTER(68; "F"; "C") 20 Uma das provas mais carismticas do atletismo a milha. Calcule quantas voltas pista que os atletas tm que dar.
Quantos centmetros tem um monitor de 15 polegadas =CONVERTER(15;"in";"cm") 38.1 Quantos centmetros tem um monitor de 14 polegadas =CONVERTER(14;"in";"cm") 35.56 A unidade origem a polegada e a unidade destino o metro com o prefixo centi DECAHEX(nm; casas) converte um nmero decimal em hexadecimal, onde: nm o inteiro decimal que deseja converter. Se nm for negativo, casas ser ignorado; casas o nmero de caracteres a serem utilizados. Se casas for omitido, aa funo utiliza o nmero mnimo de caracteres necessrio. =DECAHEX(1;2) 01 =DECAHEX(15) F HEXADEC(nm) converte um nmero hexadecimal em decimal. =HEXADEC("1E") 30
58
6. ARRAYS / ANLISE DE TENDNCIA, CRESCIMENTO E PREVISO, TABELAS, GOALSEEK E SOLVER, CONSTRUO DE CENRIOS
Objectivos:
! ! ! ! ! ! Frmulas array ou matriz Funes: Frequncia Tendncia, Crescimento e Previso Anlise de Sensibilidade: Tabela de Dados Atingir Objectivo Solver
59
Em vez de inserir a frmula =D20*2 na clula E20 e depois copiar para as duas clulas imediatamente abaixo, podemos seleccionar as clulas onde queremos a frmula (E20:E22) e depois inserir a frmula matriz =D20:D22*2 e terminar com CTRL+SHIFT+ENTER.
Funo FREQUNCIA FREQUNCIA(matriz_dados; matriz_bin) ou FREQUENCY devolve uma distribuio da frequncia como uma matriz vertical. Para um dado conjunto de valores e um dado conjunto de binrios (ou intervalos), uma distribuio de frequncia conta quantos desses valores ocorrem em cada intervalo, onde: Matriz_dados uma matriz ou uma referncia a um conjunto de valores cujas frequncias deseja contar. Se matriz_dados no contiver valores, a funo produz uma matriz de zeros. Matriz_bin uma matriz ou referncia a intervalos nos quais deseja agrupar os valores contidos em matriz_dados. Se matriz_bin no contiver valores, FREQUNCIA fornecer o nmero de elementos em matriz_dados. A funo tem que ser introduzida como uma frmula de matriz depois de seleccionado um intervalo de clulas adjacentes (nmero de elementos em matriz_bin mais um) em que se deseja que a distribuio fornecida aparea. A funo ignora clulas em branco e texto.
Exemplos:
60
CRESCIMENTO(val_conhecidos_y; val_conhecidos_x; novos_valores_x; constante) ou GROWTH Ajusta uma curva exponencial aos dados val_conhecidos_y e val_conhecidos_x e fornece os valores de y ao longo da curva para a matriz de novos_valores_x que especificar, onde: Val_conhecidos_y o conjunto de valores y j conhecidos na relao y = b*m^x.
PREVISO(x; val_conhecidos_y; val_conhecidos_x) ou FORECAST devolve um valor previsto para x, baseado numa regresso linear de matrizes x e y conhecidas ou de intervalos de datas, onde: X o ponto de dados cujo valor deseja prever; Val_conhecidos_y o intervalo de dados ou matriz dependente;
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Val_conhecidos_x o intervalo de dados ou matriz independente. A funo previso semelhante funo tendncia com a diferena que serve para calcular um s valor, embora se possa usar tambm esta funo como frmula matriz. Neste caso produz o mesmo resultado que a funo tendncia.
61
Exemplos:
62
63
Pretende-se saber, em regime de juro composto, ao fim de quantos anos que um dado capital, aplicado a uma dada taxa anual, com capitalizaes anuais, duplica.
7.5. SOLVER
O comando Solver utilizado para maximizar ou minimizar o valor de uma clula que est dependente da variao dos valores em vrias outras clulas, dentro de restries previamente definidas. Quando utilizar o Solver, as clulas com que estiver a trabalhar tero que estar relacionadas atravs de frmulas na folha de clculo.
Exemplo: Imagine que pretende comprar 100 animais com 100 escudos. Os preos unitrios dos diferentes animais so aqueles que se apresentam, de seguida:
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Vamos formular o problema da forma que se apresenta no quadro seguinte, atribuindo quantidades a cada animal, relacionando as quantidades com o preo unitrio e calculando os respectivos totais (em quantidade e dinheiro).
64
E Quantidade 1 1
3 12$50
Os valores da coluna F resultam todos de frmulas bem como os Totais. Daqui resulta que em F4 se encontra a frmula =D4*E4 e que em E7 se encontra a frmula =Soma(E4:C6). Se o solver no se encontrar disponvel em Ferramentas Solver ento deve fazer Ferramentas Suplementos e seleccionar Suplemento Solver. Utilizando o Solver vamos definir:
Uma ltima restrio que no se encontra visvel refere-se a F7 que tambm tem que ser igual a 100. Quando pedimos para solucionar, o Solver apresenta-nos a seguinte soluo:
E Quantidade 1 27 72
100 100$00
65
Lus 15 10 14 14
66
A constituio de cenrios passa pela utilizao das opes: Ferramentas Cenrios que nos conduz seguinte janela de dilogo:
Nesta janela, para comearmos a adicionar cenrios, devemos pressionar o boto Adicionar que nos conduz a:
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu Neste quadro devemos definir o nome do cenrio inicial (p. ex. Igual Ponderao) e especificar as clulas variveis, ou seja, neste exemplo as clulas que contm as ponderaes das provas $G$4:$G$7. Quando pressionamos OK surge-nos a possibilidade de especificarmos os valores para cada uma das clulas variveis atravs do quadro seguinte:
67
Se pretendermos adicionar mais cenrios, aps a introduo de todos os valores para as clulas variveis do cenrio actual devemos pressionar Adicionar que nos conduz definio de um novo cenrio e assim por diante. Por ltimo terminamos a definio de cenrios com Ok que nos conduz a:
Agora podemos seleccionar qualquer um dos 5 cenrios constitudos para vermos o seu resultado, alterar os valores das variveis independentes (ponderaes) ou eliminar esse cenrio.
68
69
Resumo:
As tabelas dinmicas so um instrumento que serve para resumir dados de uma Tabela ou Base de Dados dando-lhes a orientao mais adequada em funo dos objectivos pretendidos. Trata-se, em rigor, duma forma verdadeiramente objectiva de transformar dados em informao.
Optando por criar uma Tabela Dinmica partindo dos dados constantes na nossa Tabela em Excel faramos Seguinte.
70
Por ltimo, o Excel pergunta-nos se pretendemos embutir a Tabela Dinmica na Folha actual ou se queremos criar uma nova folha. O dilogo o seguinte:
Se optarmos por embutir na mesma folha, apenas temos que definir o endereo do canto superior esquerdo da Tabela Dinmica.
71
Nesta fase, podemos optar por concluir e, nesse caso, somos confrontados com o seguinte quadro e barra de construo de Tabela Dinmica:
Ou podemos optar por definir o esquema da Tabela Dinmica antes de terminar e, neste caso, pressionando o boto Esquema surge-nos o seguinte dilogo:
72
Atravs deste quadro podemos definir a nossa Tabela Dinmica em funo das necessidades de informao subjacentes mesma.
Para procedermos alterao de uma Tabela Dinmica basta-nos aceder Tabela Dinmica seleccionando-a e de seguida, actuar sobre as opes da barra de ferramentas correspondente. Caso esta barra no se encontre imediatamente visvel sempre possvel evoc-la atravs das opes Ver Barras de Ferramentas Tabelas Dinmicas.
73
8. VBA
9.1. O QUE UMA FUNO
Funes so rotinas que tm como objectivo executar um conjunto de instrues e produzir um valor final. So definidas por:
Recorde-se como exemplo a funo SUM , esta recebe por parmetro um conjunto de valores que se pretendem somar, sabe-se que o resultado da aplicao dessa funo ao conjunto de valores ser o respectivo somatrio.
9.2. FUNES DO EXCEL O Excel dispe de um conjunto variado de funes (de estatstica, de data e hora, de matemtica e trigonometria, de finanas, de pesquisa e referncia, de bases de dados, de texto, de lgica, e de informao) pr-programadas que se podem utilizar nas clulas da worksheet para executar os mais diversos clculos. Contudo, existem funes que o Excel no contempla e que por vezes os utilizadores gostariam de aplicar para a realizao dos seus clculos usuais. Neste contexto, est previsto o desenvolvimento de funes personalizadas recorrendo a uma codificao das mesmas numa linguagem que o computador possa entender e executar - Visual Basic for Applications (VBA).
74
<Nome da Funo> = <Valor ou Expresso> End Function A definio comea com a palavra-chave Function e termina com as palavras End Function. Para definir o valor produzido pela uma funo basta no seu interior, atribuir ao nome da funo um determinado valor ou expresso. Aplicaes Prticas Problema: Fazer uma funo que calcule o valor com IVA. 1. Parmetros / Input: Valor Ilquido e Taxa de IVA
2. Passos a executar:
1. Multiplicar o Valor Ilquido pela Taxa de IVA 2. Somar ao Valor Ilquido o valor calculado no passo anterior. Assim o valor do IVA deve ser atribudo a uma varivel, no passo 2.1, para utilizao posterior. 3. Em VBA:
Problema: Fazer uma funo que gere valores aleatrios num intervalo real definido por dois limites 1. Parmetros / Input: Limite Inferior e Limite Superior
2. Passos a executar:
75
3.
Em VBA:
9.4. ONDE DEFINIR A FUNO A funo tem de ser definida (escrita) em linguagem VBA num sitio apropriado -Editor de Visual Basic for Applications. Para aceder ao editor escolha a seguinte sequncia de opes do menu: Tools / Macro / Visual Basic Editor
Project Explorer
Se a janela no estiver visvel active-a atravs do View / Project Explorer ou utilizando o boto ou combinaes de letras associadas a esta tarefa. Nesta janela poder visualizar a hierarquia dos projectos de Visual Basic for Applications activos nesse momento.
76
Entre eles dever encontrar um cujo nome corresponde ao nome do WorkBook do Excel com que est a trabalhar e.g. VBAProject (Book1). dentro deste projecto que dever trabalhar para que todas as funcionalidades que implemente estejam nele activas sempre que necessrio. Assim se fizer o desdobramento do seu VBAProject, encontrar um folder cuja designao Microsoft Excel Objects, e um outro designado Modules (se este no aparecer significa que o seu projecto ainda no possui qualquer funo implementada. Para criar este folder dever fazer:
Insert / Module).
Certifique-se, antes de comear a criar a funo, que o est a fazer dentro dos modules, caso contrrio elas no funcionaro como pretende.
9.5.
Aplicao Prtica Problema: Criar uma funo que calcule o IVA 1. Parmetros / Input: Valor Ilquido e Taxa de IVA
2. Passos a executar:
Escrever a funo integralmente, ou Recorrer ao Insert / Procedure para que o VBA lhe crie a estrutura
77
Nesta caixa de dilogo dever indicar o tipo de rotina a criar Function e o nome que pretende dar funo. Automaticamente o Visual Basic for Applications criar a estrutura da rotina, que neste caso ficaria: Function IVA( ) End Function
Depois bastar escrever a expresso que produzir o valor final, entre estas duas linhas de cdigo, como mostra a figura seguinte
9.6. EXECUO DE UMA FUNO DENTRO DE UMA CLULA Uma vez que uma funo produz um valor ela poder ser executada dentro de uma clula numa WorkSheet, semelhana de qualquer uma outra funo do Excel
1. 2. 3. 4.
Posicione-se na clula onde pretende inserir a funo Insert / Function Seleccione a categoria User Defined repare que aparece listada a funo que acabou de criar IVA Clique em OK e de imediato uma janela de ajuda vir auxiliar a utilizao da sua funo
78
5.
Em suma:
Qualquer funo poder ser utilizada numa WorkSheet do Excel, sendo a sua utilizao semelhante a qualquer outra funo: numa clula = <nome da funo> (<Param_1> , <Param_2>)
9.7. UTILIZAO DE VARIVEIS As variveis constituem repositrios temporrios de valores, podendo ser utilizadas para diversos fins.Quando se pretende atribuir valores a variveis dever-se- indicar o nome da varivel, o operador "=" e o valor que se pretende que a varivel armazene. <Nome_Varivel> = <Valor> O nome da varivel representa o contedo da mesma, i.e., sempre que mencionar o nome da varivel o seu contedo que ser considerado.
O tipo de varivel est associado ao gnero de informao que esta tem hiptese de armazenar: Boolean 2 bytes Permite armazenar valores Boolenaos True ou False Byte 1 Byte permite armazenar nmeros sem sinal entre 0 e 255 Currency - 8 bytes permite armazenar moeda Date 8 Bytes permite armazenar datas
79
Double 8 bytes permite armazenar um real desde 1.79769313486232E308 at 4.94065645841247E-324 para valores negativos, e desde 1.79769313486232E308 at 4.94065645841247E-324 para valores positivos. Single 4 bytes permite armazenar um real desde -3.402823E38 at -1.4011298E-45, para valores negativos e desde 3.402823E38 at 1.4011298E-45, para valores positivos Integer 2 bytes - permite armazenar nmeros inteiros entre -32.768 e 32767 Long 4 bytes permite armazenar nmeros inteiros entre -2 147 483 648 e 2 147 483 648 Object 4 bytes utilizado para fazer referncia a um objecto do Excel String 1 byte por caractere permite armazenar conjuntos de caracteres Variant 16 bytes - permite armazenar qualquer tipo de dados User-Defined permite armazenar valores de tipos diferentes
As variveis que utilizar dentro de uma funo devero por norma ser declaradas i.e. definidas, sempre que uma varivel for utilizada sem ser definida o VBA considera-a do tipo Variant. A definio feita da seguinte forma: Dim Numero As Integer Onde: Dim Palavra chave que indica uma declarao de variveis (abreviatura de dimenso) Numero - nome da varivel a utilizar As palavra chave utilizada para separar o nome da varivel do tipo de dados Integer tipo de dados atribudo varivel
80
9.8. ESTRUTURAS DE CONTROLO O VBA disponibiliza algumas estruturas que pode utilizar para controlar o decurso da execuo da rotina. Estas estruturas do ao programador um poder enorme para construir funes bastante complexas e flexveis.
VBA Control
If -Then - Else
Objectivo
Testa uma condio e executa um determinado conjunto de instrues consoante o resultado dessa avaliao
For Next
While-Wend
Executa uma determinada tarefa enquanto que uma determinada condio permanea verdadeira, i.e., com o valor True.
Do Loop
Executa uma determinada tarefa enquanto que a avaliao de uma condio permanea True ou ento at que seja True.
Select - Case
Realiza uma determinada tarefa repetitiva em cada objecto de uma coleco ou em cada item de um array.
9.8.1. If-Then-Else
Recorrendo funo IF do Excel, recorde: =IF( <condio>, <se condio verdadeira>, <se condio falsa> ) A funo IF tinha o seguinte comportamento: 1. Avalia a condio, que dever ser uma expresso booleana colocada como primeiro parmetro;
2. 3. Se a condio for verdadeira, ento (then) realiza as operaes colocadas no segundo parmetro; Caso contrrio (else), realiza as operaes que formam o terceiro parmetro
81
A estrutura IF do VBA tem o mesmo tipo de funcionamento, o que difere a sintaxe. Assim: If <Condio> Then <se condio verdadeira> [ Else <se condio falsa> ] End If A palavra Else opcional sendo que no caso de ser omitida, a avaliao negativa da condio implica uma sada automtica da Instruo If.
Aplicao Prtica Problema: Determinar se um nmero par 1. Elementos de anlise 1. Nome: _Par
2. 3. 2. Parmetros: nmero que vai ser avaliado Output: True se for par, e False caso contrrio
Passos a executar:
1. Se for igual a zero, ento o nmero par e a funo assume o valor True
2. 3. Seno, o valor impar e a funo assume o valor False Em VBA:
82
Interpretao
Dim resto As Double Resto = Numero Mod 2 Declarao da varivel resto, onde guardado o resto da diviso do nmero por dois Mod uma funo que calcula o resto da diviso do Numero por 2 (neste caso). O valor calculado atribudo varivel resto. If Resto = 0 Palavra chave que indica o inicio de uma instruo If-Then-Else A condio a testar. Serve para determinar a sequncia a dar execuo da rotina. Da avaliao desta condio pode-se obter um de dois valores True ou False, sendo que depende deste resultado o caminho a prosseguir. Se for True executar as instrues que seguirem a palavra-chave Then at encontrar a palavra chave Else, no executando mais nada dentro do IF, caso contrrio executar o cdigo que se seguir palavra chave Else at ao End If. Then Palavra chave que determina o fim da condio teste. Todas as instrues que tm inicio nesta palavra-chave at palavra-chave Else sero executadas se a condio for verdadeira. _Par = True Else Instruo a executar se a condio for verdadeira. Palavra-chave que determina o terminus de execuo das instrues quando o resultado da avaliao for True, e que determina o inicio das instrues a executar se o resultado da condio for False. _Par = False End If Instruo a executar se a condio for falsa. Palavra-chave que indica o fim do controlo de If-Then-Else e como tal onde se deve retomar as instrues para prosseguir a execuo do procedimento.
Aplicao Prtica Problema: Crie a funo Mod para usar nas clulas do Excel. 1. Elementos de anlise 1. Nome: Resto_Diviso
2. 3. 2. Parmetros: Dividendo e Divisor Output: resto da diviso do Dividendo pelo Divisor
Passos a executar:
83
3.
Em VBA:
A instruo adicional ElseIf Esta instruo prope uma condio alternativa se o teste da condio anterior tiver tido um resultado negativo.
Aplicao Prtica Problema: Pretende-se criar uma funo que classifique etariamente um indivduo em funo da sua idade. A classificao pretendida a seguinte:
Idade Menos de 3 anos Dos 3 aos 12 Dos 13 aos 19 Dos 20 aos 25 Dos 26 aos 65 Mais de 65
3.
Elementos de anlise
1. Nome: Classe_Etria
2. 3. 4. Parmetros: Idade Output: "Beb", "Criana", "Adolescente", "Jovem", "Adulto" ou "Idoso"
Passos a executar:
1. Avaliar a idade
84
Este tipo de codificao pode tornar-se confuso e difcil de controlar, como tal o VBA proporciona uma estrutura mais simples para este tipo de situaes: Select Case.
9.8.2. Select Case
Permite a escolha de um percurso mediante a avaliao de n condies. de extrema utilidade para evitar os Ifs encadeados, dando um maior grau de legibilidade e simplicidade ao cdigo construdo. Select Case <Expresso a ser avaliada> [Case <Valor da Expresso> [Instrues a realizar]] ...[Case Else [Instrues a realizar na situao residual]] End Select
85
Aplicao Prtica Problema: Alterar a estrutura da funo Classe_Etria mediante a aplicao do Select Case.
Construo da Estrutura
Select Case Idade Palavras-Chave que indicam o inicio de um controlo Select Case Expresso sujeita a teste, i.e., varivel cujo contedo est a ser avaliado. Esta varivel vai ser comparada sucessivamente pelos valores alternativos apresentados nas instrues Case <Valor>, se encontrar o valor nalguma dessas opes Case executar as linhas de cdigo que a tero inicio at opo de Case seguinte. Caso o valor da varivel a ser comparada no corresponda a nenhum valor apresentado nas opes Case, existe uma opo Case especial - Case Select - para os restantes valores, neste caso sero executadas todas as instrues que se localizem entre o Case Else e o Case Select. Case Is<3 ou Case Is<13 ou Case Is<20 ou Case Is<26 ou Case Is<66 Case Else Ser a instruo Case residual, seleccionada somente se nenhuma das outras o tiver sido. Neste caso sero realizadas todas as instrues de cdigo que se lhe seguirem at expresso End Select. Findo o qual seguir todas as instrues aps o controlo Select case. End Select Palavra-Chave que indica o fim do controlo Select Case. Expresses Case. Se o valor da varivel for igual a qualquer um dos valores apresentados em cada uma destas expresses, o fluxo de execuo ter continuidade na linha abaixo da expresso case que faz o matching, at que uma nova expresso case seja encontrada. Sendo que nessa altura termina o controlo Select Case dando continuidade ao programa nas instrues que se seguirem ao End Select.
86
Permite a execuo repetida de uma tarefa durante um determinado nmero de vezes. For <Inicializao do Contador> To <Valor > [ Step <Valor a Incrementar>] <Instrues a realizar em cada iterao> Next
Aplicao Prtica Problema: Pretende-se criar uma funo que recebendo a base e a potncia calcule o valor respectivo. 1. Elementos de anlise 1. Nome: Calc_Potncia
2. 3. 2. Parmetros: Base, Potncia Output: Base elevada potncia
Passos a executar:
1. Multiplicar sucessivas vezes (nmero indicado pela potncia) a base pelo resultado acumulado das sucessivas operaes. 2. Em VBA:
87
Conta o nmero de vezes que a base j foi multiplicada, uma varivel que ser automaticamente incrementada em cada looping do ciclo.
acumulado Varivel que armazena o resultado sucessivo por cada vez que se multiplica. Inicializado a 1 (elemento neutro da multiplicao) antes do ciclo.
Construo do Ciclo:
For i = 1 To Potncia Palavra-chave que indica o inicio do ciclo For-Next Expresso que contm a inicializao do contador, indicando o valor de inicio e de fim. Assim, o nmero de vezes que o ciclo executado ser: Valor_Fim Valor_Inicio +1. A palavra To utilizada para separar o valor do contador no momento inicial do valor no momento final. (Traduo: O contador iniciar-se- a um e atingir o valor mximo traduzido pela varivel Potncia) Step 1 Palavra chave utilizada para especificar o valor a incrementar ou decrementar ao contador do ciclo por cada vez que o loop concretizado. Normalmente o valor a incrementar um, contudo qualquer outro valor pode ser utilizado, desde nmeros decimais, a nmeros negativos (Provocando assim a decrementao). A palavra-chave Step opcional, sempre que for omitida assumido 1 como o valor a incrementar por defeito. acumulado = acumulado Instruo a realizar de cada vez que o ciclo for executado. Neste caso a instruo nica, * Base Next contudo poder-se-o adicionar outras instrues. Palavra Chave que indica o fim de um ciclo For-Next . Sempre que a execuo do ciclo chega instruo Next incrementa a varivel contador e volta ao inicio do ciclo.
Traduo Integral: For i = 1 To Potncia Step 1 acumulado =acumulado * Base Next Para o nmero de vezes, a iniciar em 1 at que atinja, o valor Potncia, pela incrementao de 1 na execuo de cada ciclo, dever multiplicar sucessivamente o resultado acumulado, pela base.
88
Funcionamento do Ciclo: A primeira execuo do ciclo distingue-se das restantes por a ela estar associada a inicializao do contador, sendo o restante procedimento semelhante a qualquer outra execuo. No inicio de cada execuo do ciclo, a varivel contador comparada com o valor final de execuo. Se o Step for um valor positivo (incrementar) e o valor do contador for superior ao valor final significa que o ciclo j foi realizado o nmero de vezes pretendido, e ento o cdigo acabar a execuo da instruo For-Next e seguir na linha de cdigo que esteja situada imediatamente a seguir, caso contrrio executa uma vez mais o ciclo e incrementa a varivel contador. Por outro lado, se o Step contiver valor negativo (decrementar) e o valor do contador for inferior ao valor final significa que o ciclo j foi realizado o nmero de vezes pretendido, e ento o cdigo acabar a execuo da instruo For-Next e seguir na linha de cdigo que esteja situada imediatamente a seguir, caso contrrio executa uma vez mais o ciclo e decrementa a varivel contador.
Aplicao Prtica Problema: Pretende-se criar uma funo para calcular um factorial. 1. Elementos de anlise 1. Nome: Factorial
2. 3. 2. Parmetros: Nmero Output: Factorial do Nmero introduzido
Passos a executar:
89
4.
Em VBA:
A estrutura While-Wend tem um funcionamento similar ao For-Next. Realiza um looping um determinado nmero de vezes, enquanto que uma determinada condio permanea verdadeira. A diferena entre este ciclo e o ciclo For-Next basicamente o facto deste saber apriori o nmero de vezes que vai ser realizado, enquanto que um ciclo While-Wend poder ou no sablo pois terminar quando a condio for Falsa. While <Condio> <Instrues a realizar em cada iterao> Wend
Aplicaes Prticas Problema: Modificar a estrutura da funo Factorial, criada com o ciclo For-Next (Neste caso o ciclo sabe apriori o nmero de vezes que ir ser realizado) 1. Elementos de anlise 1. Nome: Factor
2. 3. 2. Parmetros: Nmero Output: Factorial do Nmero introduzido
Passos a executar:
90
Problema: Apostar um nmero entre 1 e 10 e saber ao fim de quantos lanamentos (geraes aleatrias) que foi seleccionado. (Neste caso o ciclo no sabe o nmero de vezes que ir ser realizado) 1. Elementos de anlise 1. Nome: Aposta_1a10
2. 3. 2. Parmetros: Nmero Output: Nmero de lanamentos
Passos a executar:
91
4.
Em VBA:
A instruo While-Wend tem como funo gerar nmeros aleatrios entre 1 e 10 por forma a encontrar o nmero da aposta, e saber qual o nmero de lanamentos necessrios para que aquele valor fosse obtido.
Lanamento Guarda o valor obtido em cada um dos lanamentos. i Nmero de lanamentos realizados at obter o resultado da aposta. Este valor tem de ser incrementado cada vez que realizado um sorteio.
Construo do Ciclo
While Nmero<>Lanamento Palavra-chave que indica o inicio do ciclo While-Wend Condio teste utilizada para determinar o terminus da realizao do ciclo. Se esta condio for Verdadeira executa as instrues que esto dentro do While-Wend, se for Falsa a execuo do ciclo terminada tendo o programa sequncia nas instrues que seguem a palavra chave Wend. Lanamento = Int(1 + Rnd() * (10 - 1 + 1)) Instruo a realizar de cada vez que o ciclo executado. Tem como
92
funo gerar nmeros aleatrios inteiros entre 1 e 10. Repare que este valor inicializado antes do inicio do ciclo por forma a garantir uma comparao correcta na condio. Em vez de realizar esta expresso poderia utilizar a funo Gera_Entre. i=i+1 Instruo a realizar de cada vez que o ciclo executado. Tem como funo fazer a contagem de quantos lanamentos foram realizados at se obter o valor da aposta. Repare que este valor quando entra para o ciclo j tem o valor 1 correspondente ao sorteio realizado inicialmente. Wend Palavra Chave que indica o fim de um ciclo While-Wend.
Traduo Integral While Nmero <> Lanamento Lanamento = Int(1 + Rnd() * (10 - 1 + 1)) i=i+1 Wend Enquanto o nmero do lanamento no for igual ao nmero da aposta, o sorteio continua, o que implica sortear um nmero e contabilizar o nmero de sorteios realizados.
93
Funcionamento do Ciclo Existe uma fase de inicializao das variveis envolvidas na condio teste para garantir o correcto funcionamento do ciclo. Avalia a condio teste e se for verdadeira executa todas as instrues at palavra-chave Wend voltando de novo avaliao da condio, se for falsa prossegue a execuo da rotina nas instrues que se localizam depois da palavra-chave Wend.
Garantir que em algum momento a condio teste falsa e o ciclo termina a sua execuo.
A no verificao destas condies implicar que o ciclo no tenha fim Ciclos Infinitos
9.8.5. Do Loop
Esta estrutura similar estrutura do While-Wend. Contudo fornece duas possibilidades que esto limitadas quela estrutura:
Do Loop permite posicionar a condio teste no inicio ou fim do loop, a condio no fim do Loop evita uma inicializao prvia do valor das variveis envolvidas na condio teste, dado que essa inicializao pode ser feita no decurso do ciclo com valores reais.
Do Loop permite ainda especificar se o loop se vai realizar enquanto (while) uma expresso for verdadeira ou at que (until) a condio ser verdadeira (facilidade conseguida atravs do operador Not)
94
Poder ser: Do [{While Until} <condio>] <Instrues a realizar por iterao> Loop Ou ento: Do <Instrues a realizar por iterao> Loop[{While Until} <condio>]
Aplicaes Prticas
Problema: Apostar um nmero num intervalo definido e saber ao fim de quantos lanamentos (geraes aleatrias dentro do intervalo considerado) que foi seleccionado.
1. Verificar se o nmero est no intervalo definido (Limite Inferior a Limite Superior) e se o intervalo est bem definido (Limite Inferior < Limite Superior)
2. Se estiver, gerar continuamente nmeros aleatrios nesse intervalo e comparar com o Nmero da aposta, quando for igual pra e indica o nmero de lanamentos 3. Seno estiver no intervalo indicar "ERRO DE INSERO"
95
3.
Em VBA:
Aplicaes Prticas
1.
Universidade Catlica Portuguesa Centro Regional das Beiras - Plo de Viseu 2. Utilizando a condio teste no inicio do Loop e com a palavra Until
96
3.
4.