Manual Excel

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 96

Manual de Excel

Por:
Paulo Castro Ribeiro

Viseu, 2000
Índice

1. FORMATAÇÃO, FÓRMULAS, NOMES, REFERÊNCIAS RELATIVAS E ABSOLUTAS --------------- 4

1.1. MODOS DE TRABALHO / INSERÇÃO DE DADOS: -----------------------------------------------------------------------------6


1.1.1. Modo Pronto ----------------------------------------------------------------------------------------------------------- 6
1.1.2. Modo Edição ----------------------------------------------------------------------------------------------------------- 7
1.2. COMPONENTES DA BARRA DE EDIÇÃO ---------------------------------------------------------------------------------------7
1.3. FÓRMULAS (OPERADORES E OPERANDOS) -----------------------------------------------------------------------------------9
1.4. MODELO DE CÁLCULO SIMPLIFICADO -------------------------------------------------------------------------------------- 10
1.5. REFERÊNCIAS RELATIVAS, ABSOLUTAS E MISTAS------------------------------------------------------------------------- 12
1.6. NOMES DE CÉLULAS ----------------------------------------------------------------------------------------------------------- 14
2. FUNÇÕES: UTILIZAÇÃO / CRIAÇÃO DE FUNÇÕES. TIPOS DE ERROS ------------------------------- 16

2.1. FUNÇÕES MATEMÁTICAS: ---------------------------------------------------------------------------------------------------- 16


2.2. FUNÇÕES LOGARÍTMICAS ----------------------------------------------------------------------------------------------------- 18
2.3. FUNÇÕES TRIGONOMÉTRICAS ------------------------------------------------------------------------------------------------ 19
2.4. FUNÇÕES PARA MATRIZES ---------------------------------------------------------------------------------------------------- 19
2.5. FUNÇÕES ESTATÍSTICAS ------------------------------------------------------------------------------------------------------ 19
2.6. FUNÇÕES LÓGICAS E DE INFORMAÇÃO ------------------------------------------------------------------------------------- 20
2.6.1 Funções lógicas:------------------------------------------------------------------------------------------------------ 20
2.6.2. Função SE ou IF ----------------------------------------------------------------------------------------------------- 20
2.6.3. Funções E, OU e NÃO ---------------------------------------------------------------------------------------------- 21
2.6.4. Funções VERDADEIRO e FALSO -------------------------------------------------------------------------------- 22
2.7. FUNÇÕES PERSONALIZADAS ------------------------------------------------------------------------------------------------- 23
2.8. FUNÇÕES DE INFORMAÇÃO: -------------------------------------------------------------------------------------------------- 24
2.9. TIPOS DE ERROS: --------------------------------------------------------------------------------------------------------------- 26
3. DATAS E HORAS, NÚMEROS ALEATÓRIOS (RAND), SUMIF, COUNTIF------------------------------ 27

3.1. INTRODUÇÃO DE UMA SÉRIE DE DATAS------------------------------------------------------------------------------------- 28


3.2. FUNÇÕES DE DATA E HORA --------------------------------------------------------------------------------------------------- 28
3.3. FUNÇÕES MATEMÁTICAS / ALEATÓRIO E ALEATÓRIOENTRE ----------------------------------------------------------- 31
3.4. FUNÇÃO MATEMÁTICA SOMA.SE: ------------------------------------------------------------------------------------------- 31
3.5. FUNÇÃO ESTATÍSTICA CONTAR.SE: ----------------------------------------------------------------------------------------- 31
4. FUNÇÕES DE TEXTO: LOWER, UPPER, LEFT, RIGHT, FIND, SUBST E FUNÇÕES DE
CONSULTA EM TABELAS: VLOOKUP, HLOOKUP ---------------------------------------------------------- 33

4.1. FUNÇÕES DE TEXTO ----------------------------------------------------------------------------------------------------------- 33


4.2. FUNÇÕES DE CONSULTA E REFERÊNCIA ------------------------------------------------------------------------------------ 36
5. FUNÇÕES DE BASE DE DADOS: DGET, DCOUNTA, DSUM, ... CRITÉRIOS --------------------------- 41

5.1. CUIDADOS A TER AO CRIAR TABELAS -------------------------------------------------------------------------------------- 41


5.2. FUNÇÕES DE BASE DE DADOS ------------------------------------------------------------------------------------------------ 42
5.3.CONSTRUÇÃO DE CRITÉRIOS -------------------------------------------------------------------------------------------------- 43
5.3.1. Critérios comparados simples ------------------------------------------------------------------------------------- 43
5.3.2 Critérios compostos -------------------------------------------------------------------------------------------------- 44
5.3.3 Critérios calculados-------------------------------------------------------------------------------------------------- 45
5.4. FILTROS AUTOMÁTICOS E FILTROS AVANÇADOS--------------------------------------------------------------------- 47
5.4.1. Filtros Automáticos-------------------------------------------------------------------------------------------------- 47
5.4.2. Filtros Avançados --------------------------------------------------------------------------------------------------- 48
6. FUNÇÕES FINANCEIRAS E DE ENGENHARIA ---------------------------------------------------------------- 51

6.1. FUNÇÕES FINANCEIRAS ------------------------------------------------------------------------------------------------------- 51


6.2. FUNÇÕES DE ENGENHARIA --------------------------------------------------------------------------------------------------- 55
7. ARRAYS / ANÁLISE DE TENDÊNCIA, CRESCIMENTO E PREVISÃO, TABELAS, “GOALSEEK”
E “SOLVER”, CONSTRUÇÃO DE CENÁRIOS ------------------------------------------------------------------ 58

7.1. ARRAYS ------------------------------------------------------------------------------------------------------------------------- 58


7.1.1. Fórmulas matriz (array) -------------------------------------------------------------------------------------------- 58
7.1.2. Fórmula combinação------------------------------------------------------------------------------------------------ 58
7.1.3. Fórmula cópia-------------------------------------------------------------------------------------------------------- 59
7.2. FUNÇÕES TENDÊNCIA, CRESCIMENTO E PREVISÃO------------------------------------------------------------- 60
7.3. TABELA DE DADOS OU DATA TABLE --------------------------------------------------------------------------------------- 61
7.3.1. Tabela de dados baseada numa variável ------------------------------------------------------------------------- 61
7.3.2. Tabela de dados baseada em duas variáveis--------------------------------------------------------------------- 62
7.4. ATINGIR OBJECTIVO OU GOAL SEEK --------------------------------------------------------------------------------------- 62
7.5. SOLVER -------------------------------------------------------------------------------------------------------------------------- 63
7.6. CONSTRUÇÃO DE CENÁRIOS ------------------------------------------------------------------------------------------------- 65
8. RELATÓRIOS DE TABELAS E GRÁFICOS DINÂMICOS---------------------------------------------------- 69

8.1. CRIAÇÃO DE TABELAS / GRÁFICOS DINÂMICOS -------------------------------------------------------------------------- 69


8.2. ALTERAÇÃO DE UMA TABELA / GRÁFICO DINÂMICO -------------------------------------------------------------------- 72
9. VBA -------------------------------------------------------------------------------------------------------------------------- 73

9.1. O QUE É UMA FUNÇÃO -------------------------------------------------------------------------------------------------------- 73


9.2. FUNÇÕES DO EXCEL ----------------------------------------------------------------------------------------------------------- 73
9.3. COMO CRIAR FUNÇÕES ------------------------------------------------------------------------------------------------------- 73
9.4. ONDE DEFINIR A FUNÇÃO ---------------------------------------------------------------------------------------------------- 75
9.5. TRABALHAR NO EDITOR DE VBA – CRIAR UMA FUNÇÃO --------------------------------------------------------------- 76
9.6. EXECUÇÃO DE UMA FUNÇÃO DENTRO DE UMA CÉLULA ----------------------------------------------------------------- 77
9.7. UTILIZAÇÃO DE VARIÁVEIS -------------------------------------------------------------------------------------------------- 78
9.7.1. Tipos de variáveis --------------------------------------------------------------------------------------------------- 78
9.7.2. Declaração de Variáveis-------------------------------------------------------------------------------------------- 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
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 4

1. FORMATAÇÃO, FÓRMULAS, NOMES, REFERÊNCIAS RELATIVAS E ABSOLUTAS

Objectivos:
! Conceito de folha de cálculo

! Inserção de dados (tipos)

! Formatação simples

! Fórmulas - operações aritméticas

! Modelo de cálculo simplificado

! Referências relativas, absolutas e mistas

! Nomes de células

Resumo:
Folha de cálculo:

• é um conjunto de células onde se pode colocar informação e que podem relacionar-se umas com as outras
através de expressões lógicas e matemáticas;

• é uma ferramenta informática que permite fazer todos os cálculos que se pretendem, de forma simples,
iterativa ou repetitiva, relacionando os próprios dados que possui nos cálculos que faz.

Pelo que ficou dito, uma folha de cálculo é uma excelente ferramenta de simulação.

Noções:

a) barra de título - é o espaço onde é exibido o título da janela;

b) barra de menu - mostra o nome dos diferentes menus relativos à aplicação corrente. Cada menu contém
vários comandos;

c) barra de ferramentas - contém vários ícones onde se faz um "click" para executar uma tarefa;

d) barra de edição - é o espaço onde se escrevem as fórmulas ou os dados;

e) barras de rolamento - permitem aceder a áreas adjacentes da janela (verticais e horizontais);

f) barra de informação - apresenta informação e controlos relativos ao ficheiro da folha activa.

g) célula - quadro onde os dados são digitados. É delimitada pela intersecção de uma linha com uma coluna;

h) linhas - são secções horizontais ao longo da folha estendida, marcadas de 1 a 65536;

i) colunas - são secções verticais ao longo da folha estendida, ordenadas de A a Z e depois de AA a IV,
compreendendo 256 colunas;
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 5

Layout do Excel

Livro (workbook) - é um conjunto de documentos:

• folhas de cálculo (worksheets) - é um mapa composto por células que podem conter dados e fórmulas. Uma
folha pode ainda incorporar outros objectos (gráficos, botões,...);

• gráficos (charts);

• módulos de código - contêm programas escritos em VBA (Visual Basic for Applications);

• caixas de diálogo;

• macros do Excel – Conjunto de comandos “empacotados” dentro da entidade Macro.


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 6

1.1. MODOS DE TRABALHO / INSERÇÃO DE DADOS:

1.1.1. Modo Pronto

Quando o excel acaba de ser carregado, o estado do mesmo é o de Pronto. Este modo corresponde ao estado de não
edição, ou seja, quando o cursor de edição não se encontra activo. Neste modo, a folha de cálculo apresenta, em
todas as células o resultado dos cálculos efectuados. O conteúdo da célula na qual se encontra o cursor de folha
apresenta o resultado do cálculo da formula que esta tem subjacente.

Este modo de trabalho permite activar os diferentes modos de selecção que passamos a descrever:

! Selecção Simples de células

Com o Rato:

o Colocar o cursor num dos cantos do rectângulo de células 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 rectângulo de células a seleccionar, pressionar a tecla Shift
sem largar e fazer click com o ponteiro do rato na célula do canto oposto (Selecção de...até)

Com o Teclado:

o Colocar o cursor num dos cantos do rectângulo de células a seleccionar, pressionar a tecla Shift e
deslocar o cursor com as teclas de cursor

! Selecção de Coluna(s) / Linha(s)

o Apontar para o cabeçalho de coluna/linha e fazer click na tecla esquerda do rato. Se pretender
seleccionar mais do que uma coluna/linha então deve repetir o procedimento anterior arrastando o
rato em coluna/linha enquanto pressiona a tecla esquerda.

! Selecção de toda a folha

o Fazer click com o rato no quadrado de intersecção entre os cabeçalhos de coluna e linha.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 7

! Selecção Múltipla

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.

1.1.2. Modo Edição

Neste modo o cursor de edição ( | )encontra-se a piscar ou na linha de edição ou dentro da célula que está a ser
editada. Editar significa alterar o conteúdo de uma célula ou seja, apagar, acrescentar ou alterar.

1.2. COMPONENTES DA BARRA DE EDIÇÃO


Em Modo Pronto

! Caixa de nome (Contém o endereço da célula onde se encontra o cursor de folha ou o nome da mesma ou
do bloco seleccionado)

! Editar Fórmula (Chama Wizard da fórmula em edição)

! Fórmula subjacente ao valor apresentado na célula onde se encontra o cursor


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 8

Em Modo Edição

! Caixa de nome (Contém o endereço da célula onde se encontra o cursor de folha ou o nome da mesma ou
de um bloco seleccionado)

! Cancelar (Estando em modo edição cancela as alterações feitas e que ainda não foram validadas com enter)

! Inserir / Enter (Valida alterações feitas)

! Editar Fórmula (Chama Wizard da fórmula em edição)

INSERÇÃO DE DADOS

Colocar o cursor na célula onde será feita a inserção de dados e escrever. O excel passa automaticamente do modo
Pronto ao modo Edição.

Números ⇒ alinhados à direita

Texto ⇒ alinhado à esquerda

Fórmulas ⇒ começam pelo sinal de igual (= ou sinais de + ou -) e executam operações sobre os valores da folha de
cálculo

FORMATAÇÃO

Em modo Pronto, seleccionar célula(s) a formatar e fazer FORMATAR⇒CÉLULAS


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 9

1.3. FÓRMULAS (OPERADORES E OPERANDOS)

OPERADORES ARITMÉTICOS:

+ adição

- subtracção / negação

* multiplicação

/ divisão

% percentagem

^ exponenciação

OPERADORES DE COMPARAÇÃO (comparam dois valores e dão como resultado o valor lógico Verdadeiro ou Falso)

= igual

> maior

< menor

>= maior ou igual

<= menor ou igual

<> diferente

OPERADORES DE TEXTO:

& concatenação

OPERADORES DE REFERÊNCIA (combinam intervalos de células para cálculos):

: intervalo (de...a)

; união (Soma)

(espaço) intersecção explícita

ORDEM DE EXECUÇÃO DOS OPERADORES (PRIORIDADES)

(espaço)

- (negação)

*e/

+e-

&

operadores de comparação
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 10

OPERANDOS:

Um valor que não se altere (valor constante);

Uma referência de célula ou de intervalo;

Um rótulo (texto);

Um nome ou uma função de folha de cálculo.

Exemplos:

=2+3*5 resulta 17

=(2+3)*5 resulta 25

= 2>3 resulta Falso

="Ana"&2 resulta Ana2

1.4. MODELO DE CÁLCULO SIMPLIFICADO

Considere o seguinte problema: o Sr. X vende batatas em Portugal e em Espanha. Sabendo a quantidade de batatas
que vendeu em Portugal em 1996 e a quantidade de batatas que vendeu em Espanha em 1996 pretende-se saber que
quantidade de batatas é que vendeu na Península Ibérica em 1996.

Este difícil problema pode-se traduzir formalmente no seguinte modelo de cálculo:

Dados : x (que representa a quantidade de batatas vendidas em Portugal)

y (que representa a quantidade de batatas vendidas em Espanha)

Calcular : z (que representa a quantidade de batatas vendidas na P. Ibérica)

x e y são os "dados do problema"; vamos chamar-lhes variáveis independentes.

z representa o resultado , que naturalmente depende e obtém-se a partir dos outros dois; vamos chamar-lhe variável
dependente ou variável de resultado;

O cálculo a fazer traduz-se na seguinte expressão:

z = f(x,y) = x + y

i.e. : z depende (é função de) x e y e especificamente obtém-se somando x com y;

A partir deste momento, vamos passar a considerar uma folha de cálculo como reflexo de um modelo de cálculo.

O modelo de cálculo designa:

as variáveis independentes,

as variáveis dependentes, e

as expressões que permitam obter o valor das variáveis dependentes em função das variáveis independentes.

A folha de cálculo obtém-se do modelo de cálculo fazendo a seguinte correspondência:


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 11

- associar a cada variável do modelo de cálculo uma célula da folha de cálculo

- a uma variável independente associar uma célula de entrada

- a uma variável dependente associar uma célula de saída (ou seja, com uma fórmula);

Neste caso podemos, por exemplo, fazer a seguinte correspondência:

x " célula A1

y " célula A2

z " célula A3

Na célula A3 pomos a fórmula correspondente ao cálculo de z :

=A1 + A2 (ou seja a soma das células que representam as variáveis x e y)

E reencontramos a já nossa conhecida folha de cálculo:

A B
1 9 # variável x (entrada)
2 7 # variável y (entrada)
3 16 # variável z ( célula de Saída ; fórmula = A1+A2)
Exemplo:

Você vai à loja comprar um computador. O vendedor diz-lhe que o computador custa 200c mais IVA. Quanto é que
paga ?

Vamos considerar a resolução do problema em duas etapas:

1º) Definir o modelo de cálculo

O modelo de cálculo pode formular-se assim:

Variáveis independentes

Preço : preço, indicado pelo vendedor

Taxa : taxa de IVA

Variáveis Dependentes

IVA : valor do IVA

Valor : valor a pagar

Expressões

IVA = Preço * Taxa

Valor = Preço + IVA


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 12

2º) Fazer a folha de cálculo correspondente (a partir do modelo de cálculo).

1.5. REFERÊNCIAS RELATIVAS, ABSOLUTAS E MISTAS

UMA REFERÊNCIA identifica uma célula ou um intervalo de células numa folha de cálculo.

A1 célula na intersecção da coluna A com a linha 1

B5:B10 intervalo de células na coluna B da linha 5 à 10

B5:D5 intervalo de células na linha 5 da coluna B à D

5:7 todas as células da linha 5 à linha 7

A:C todas as células da coluna A à coluna C

REFERÊNCIA RELATIVA - referência a células relativamente à posição da fórmula

A célula B3 contém a fórmula =A2

$ apresenta o valor dessa célula em B3

Se copiar a fórmula de B3 para C4 passa a apresentar o valor da célula B3, ou seja, actualiza o endereço da fórmula
original (A2) em função do número de linha(s) e coluna(s) que se movimentou (uma linha para baixo – de 2 passa a
3 - e uma coluna para a direita – da coluna A passa para a coluna B)

REFERÊNCIA MISTA - quando copia fórmulas apenas se altera uma parte da referência, ou a coluna ou a linha

A célula B3 contém a fórmula =A$2

$ apresenta o valor dessa célula em B3

Se copiar a fórmula de B3 para C4 passa a apresentar o valor da célula B2, ou seja, a parte da referência à coluna
altera-se (avança uma coluna para a direita em relação ao endereço original – de A passa a B) e a parte da referência
à linha não se altera apesar de ter sido copiada a fórmula (continua a referir-se à linha 2).

REFERÊNCIA ABSOLUTA - referência a células numa posição específica

A célula B3 contém a fórmula =$A$2

$ apresenta o valor dessa célula em B3


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 13

Se copiar a fórmula de B3 para C4 continua a apresentar o valor da célula A2, ou seja, a referência não se altera
apesar de ter sido copiada a fórmula.

PRATICANDO:

Resolva o exercício seguinte imaginando que copia as fórmulas no sentido indicado pelas setas. Identifique a
fórmula e o valor resultante do processo de cópia.

REFERÊNCIA CIRCULAR - quando uma fórmula se refere, directa ou indirectamente, à sua célula (provoca erro)

A célula C6 contém a fórmula =C5+C6

REFERÊNCIA A CÉLULAS NOUTRAS FOLHAS do mesmo livro

A célula B3 contém a fórmula =Sheet2!A2

$ apresenta o valor uma célula acima e uma célula para a esquerda de B3 na folha Sheet2

REFERÊNCIAS 3D - referência a células em várias folhas


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 14

Pode ser utilizado com as seguintes funções: soma, média, média, contar, contar.val, máximo, mínimo, produto,
desvpad,, desvpadp, var e varp.

REFERÊNCIAS EXTERNAS - referência a células de outros livros

A célula B3 contém a fórmula =[Livro2]Sheet2!$A$2

$ apresenta o valor da célula A2 da folha Sheet2 do livro Livro2

A célula C3 contém a fórmula ='c:\excel\[Teorica.xls]Sheet2'!$A$2

$ apresenta o valor da célula A2 da folha Sheet2 do livro Teorica que está localizado na pasta \excel do disco C

1.6. NOMES DE CÉLULAS

Podemos usar nomes (rótulos) em vez de referências quando criamos fórmulas

FÓRMULA COM LINGUAGEM NATURAL (Natural language formula):

Nomes no topo de colunas e à esquerda de linhas identificam as células internas da tabela quando usamos nomes
em fórmulas. Este processo consiste em criar nomes e permite criar de uma só vez todos os nomes constantes de
uma tabela.

Devemos deixar sempre, pelo menos, uma linha em branco em baixo e uma coluna à direita da tabela para evitar
resultados estranhos neste tipo de fórmulas.

Todos os nomes têm que começar por uma letra, \ ou _. Não se pode usar símbolos, espaços, o nome R ou L (Linha)
ou C (Coluna) e nomes que se confundem com células (B5)

Um nome dá origem a uma referência absoluta

Só podem ser utilizados em fórmulas na mesma folha.

Seleccionamos a tabela de A3 a D6 e fazemos:

Inserir⇒Nome⇒Criar e atribuímos nome à selecção.

Com este procedimento criámos, na folha, os seguintes nomes: Produtos, Qtd, Punit, Valor, A, B e C.

Se em A10 colocarmos a fórmula

=B Qtd (note que o operador espaço corresponde à intersecção exclusiva) o resultado será:

$ 200 (célula B5)

Se em A10 colocássemos a fórmula

=B Punit, o resultado seria

$ 36 (célula C5)
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 15

ATRIBUIR NOMES A CÉLULAS E INTERVALOS

Comando Inserir ⇒ Nome ⇒ Definir ou Caixa de nome da barra de edição

Suponhamos que a célula A1 tem a idade do José e que a célula A2 tem a idade da Maria, respectivamente 30 e 29.
Se atribuirmos o nome José à célula A1 e o nome Maria à célula A2, a fórmula na célula A3 =José+Maria dá 59. Se
copiarmos a fórmula para a célula A4 continua a dar 59.

Podemos usar nas fórmulas nomes de outras folhas e livros.

ATRIBUIR NOMES A CONSTANTES E FÓRMULAS

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 célula.

Comando Inserir ⇒ Nome... ⇒ Definir...

Em Nome no livro escrever Taxa e em Refere-se a escrever 17%

A fórmula =1000*Taxa dá o valor 170


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 16

2. FUNÇÕES: UTILIZAÇÃO / CRIAÇÃO DE FUNÇÕES. TIPOS DE ERROS

Objectivos:
! Introdução às funções

! Criação de funções

! Funções matemáticas/trigonométricas

! Funções estatísticas

! Tipos de erros

Resumo:
FUNÇÃO:

As funções são fórmulas predefinidas que executam cálculos utilizando valores específicos, denominados
argumentos, numa ordem específica, denominada sintaxe. Por exemplo, a função SOMA adiciona valores ou
intervalos de células.

Os argumentos podem ser números, texto, valores lógicos do tipo VERDADEIRO ou FALSO, matrizes, valores de
erro do tipo #N/D ou referências de célula. O argumento dado deve produzir um valor válido para esse argumento.
Os argumentos podem também ser constantes, fórmulas ou outras funções.

A sintaxe de uma função começa com o nome da função, seguida de um parêntese inicial, dos argumentos para a
função separados por pontos e vírgula e de um parêntese final. Se a função começar com uma fórmula, escreva um
sinal de igual (=) antes do nome da função.

Se alguma função não estiver disponível, execute o programa de configuração para instalar o Analysis ToolPak.
Depois da instalação do Analysis ToolPak, deve seleccioná-lo e activá-lo no gestor de suplementos.

Exemplo:

=SOMA(A1:A5;C1:C5;10)

2.1. FUNÇÕES MATEMÁTICAS:

O comando Inserir ⇒ Função permite introduzir funções de um modo assistido. Selecciona-se a função que
queremos e de seguida introduzimos os vários argumentos. Em todos os passos surgem mensagens de ajuda.

A função SOMA(Num1;Num2;...) soma uma série de números (até 30 argumentos). Ignora argumentos que se
referem a textos, valores lógicos e células em branco. O botão Soma automática (AutoSum) da barra de ferramentas
acelera a utilização desta função.

ABS(Num) devolve o valor absoluto de um número

SINAL(Num) ou SIGN devolve o sinal de um número: 1 se o número for positivo, zero se for zero e -1 se for
negativo
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 17

ARRED(Num;Num_dígitos) ou ROUND arredonda um valor para um número de algarismos especificados. Se


Num_dígitos for positivo significa que o Num será arredondado para o número especifico de casas decimais, se for
0 será arredondado para o inteiro mais próximo e se for negativo será arredondado para a esquerda da vírgula
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 número por excesso até ao número ímpar inteiro mais próximo. Os números
negativos são ajustado em valor absoluto.

=ÍMPAR(2) ⇒ 3

=ÍMPAR(-2) ⇒-3

=ÍMPAR(3) ⇒ 3

=ÍMPAR(3.1) ⇒ 5

PAR(Num) ou EVEN

ARRED.DEFEITO(Num;Significância) ou FLOOR Arredonda um número para baixo, aproximando-o de zero, até


ao múltiplo mais próximo de Significância. Num e Significância têm que ser ambos positivos ou ambos negativos.

=ARRED.DEFEITO(8.3;3) ⇒ 6

=ARRED.DEFEITO(8.3;5) ⇒ 5

ARRED.EXCESSO(Num;Significância) ou CEILING

INT(Num) arredonda um número por defeito para o número inteiro mais próximo

=INT(8.3) ⇒ 8

=INT(-8.3) ⇒ -9

=INT(-8.9) ⇒ -9

TRUNCAR(Num,Num_dígitos) ou TRUNC trunca um número para um inteiro removendo a parte fraccional do


número se Num_dígitos não for definido. Num_dígitos é um número que especifica a precisão da operação. O valor
predefinido para núm_digitos é zero.

=TRUNCAR(55.987) ⇒ 55

=TRUNCAR(55.987;2) ⇒ 55.98

FACTORIAL(Num) ou FACT devolve o factorial de um número

=FACTORIAL(3) ⇒ 6
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 18

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 têm de ter a mesma dimensão.

=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 divisão

=QUOCIENTE(9;3) ⇒ 3

=QUOCIENTE(9;2.5) ⇒ 3

RESTO(Num;Divisor) ou MOD devolve o resto da divisão 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 múltiplo comum

=MMC(2;3;4) ⇒ 12

MDC(Num1;Num2;...) ou GCD devolve o máximo divisor comum

=MDC(2;3;4) ⇒ 1

RAIZQ(Num) ou SQRT devolve a raiz quadrada de um número

COMBIN(Num;Num_escolhido) devolve o número de combinações para um dado número de itens. Num é o


número de objectos e Num_escolhido é o número de objectos em cada combinação.

=COMBIN(2;2) ⇒ 1

=COMBIN(3;2) ⇒ 3

=COMBIN(4;2) ⇒ 6

2.2. FUNÇÕES LOGARÍTMICAS

LN(Num)

LOG(Num;Base)

LOG10(Num)

EXP(Num) é a inversa de LN(Num)


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 19

2.3. FUNÇÕES TRIGONOMÉTRICAS

PI()

RADIANOS(Angulo) ou RADIANS

GRAUS(Angulo) ou DEGREES

⇒ 3,1415926...
=PI()⇒

⇒ 180
=GRAUS(PI())⇒

=RADIANOS(180) ⇒ 3.1415926

SEN(Num) ou SIN

COS(Num)

TAN(Num)

...

Em que Num é o ângulo em radianos

2.4. FUNÇÕES PARA MATRIZES

MATRIZ.INVERSA(Matriz)

MATRIZ.MULT(Matriz1;Matriz2),

TRANSPOR(Matriz)

MATRIZ.DETERM(Matriz)

2.5. FUNÇÕES ESTATÍSTICAS

As funções estatísticas executam análises estatísticas em intervalos de dados.

MÉDIA(Num1;Num2,...) ou AVERAGE devolve a média aritmética dos argumentos (até 30). Ignora as células não
numéricas.

MED(Num1;Num2;...) ou MEDIAN devolve a mediana. A mediana é o número no centro de um conjunto


numérico; isto é, metade dos números possui valores que são maiores do que a mediana e a outra metade possui
valores menores.

=MED(1; 2; 3; 4; 5) ⇒ 3

=MED(1; 2; 3; 4; 5; 6) ⇒ 3,5 (média dos números do meio: 3 e 4)

MODA(Num1;Num2;...) ou MODE devolve o número que ocorre com maior frequência

=MODA(2;5;2;6;7;7;2) ⇒ 2

=MODA(3;4;7;2;3;2;7) ⇒ 3 (dá o que aparece primeiro)

MÁXIMO(Num1;Num2;...) ou MAX devolve o valor máximo de uma lista de argumentos


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 20

MÍNIMO(Num1,Num2;...) ou MIN devolve o valor mínimo de uma lista de argumentos

CONTAR(Num1;Num2;...) ou COUNT calcula quantos números existem na lista de argumentos

CONTAR.VAL(Num1;Num2;...) ou COUNTA calcula quantos células estão preenchidas na lista de argumentos

ORDEM(Num;Ref;Ordem) ou RANK devolve a posição de um número numa lista de números. Num é o número
cuja posição se deseja conhecer. Ref é a matriz (intervalo) onde se vai localizar o número e Ordem especifica como
posicionar um número 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 números 3,2,6,2,9,5

=ORDEM(3;B1:B6) ⇒ 4 se B1:B6 tiver os seguintes números 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 posição (do maior) na matriz ou intervalo
de célula de dados a ser fornecida.

=MAIOR({2;5;4;3;6};2) ⇒ 5 (segundo maior número)

MENOR(Matriz;K) ou SMALL devolve o k-ésimo menor valor do conjunto de dados

2.6. FUNÇÕES LÓGICAS E DE INFORMAÇÃO

2.6.1 Funções lógicas:


A maior parte das funções lógicas usa testes condicionais para verificar se uma condição é verdadeira ou falsa. Um
teste condicional não é mais de que uma equação que compara dois números, fórmulas, rótulos ou valores lógicos.
Cada teste condicional tem que ter um operador lógico (ou de comparação) e tem como resultado um valor lógico
VERDADEIRO/TRUE (1) ou FALSO/FALSE (0).

=2+3<=8*2 VERDADEIRO

=A1="João" depende do conteúdo de A1, se for João dá VERDADEIRO senão for dá FALSO

2.6.2. Função 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 célula A2 for maior ou igual a 10 a função dá Aprovado!


senão (se o valor da célula A2 for menor que 10) a função dá Reprovado!.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 21

=SE(1;"A";"B") ⇒ A - porque o Excel entende o 1 como o valor lógico Verdadeiro

=SE(FALSO;"A";"B") ⇒ B

=SE(K2;"A";"B") ⇒ B - se o valor da célula K2 for 0, A - se o valor de K2 não for 0

ENCADEAMENTO DE SE'S

Podem ser imbricadas até sete funções 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(MÁXIMO(B4:B9)>MÁXIMO(C4:C9);"Teste";SE(MÁXIMO(B4:B9)=MÁXIMO(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 célula F4 ficava a seguinte fórmula:

=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 fórmula é uma string (cadeia de caracteres) vazia.

2.6.3. Funções E, OU e NÃO

E(lógico1; lógico2; ...) 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 lógicos, matrizes ou
referências que contenham valores lógicos.

=E(2=2;3<>2) ⇒ VERDADEIRO

=E(2=2;"João"="João";"Maria"="Joana") ⇒ FALSO
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 22

OU(lógico1; lógico2; ...) devolve VERDADEIRO se qualquer argumento for VERDADEIRO, devolve FALSO se
todos os argumentos forem FALSO.

=OU(2>2;3<2) ⇒ FALSO

=OU(2=2;"João"="João";"Maria"="Joana") ⇒ VERDADEIRO

NÃO(lógico) ou NOT inverte o valor do argumento

=NÃO(2=2) ⇒ FALSO

PRATICANDO:

Suponha que um aluno só fica aprovado se tiver média 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 média 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")

2.6.4. Funções VERDADEIRO e FALSO

FALSO( ) ou FALSE devolve o valor lógico FALSO. Também se pode introduzir directamente na célula ou na
fórmula a palavra FALSO que o Excel interpreta-a como o valor lógico FALSO.

VERDADEIRO() ou TRUE devolve o valor lógico VERDADEIRO.


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 23

2.7. FUNÇÕES PERSONALIZADAS

Ferramentas ⇒ Macro ⇒ Editor do Visual Basic

Botão Explorador do projecto da barra de ferramentas

Inserir ⇒ Módulo

É na folha Módulo, que escrevemos o código das nossa funções

Function Nome_da_função (argumentos separados por ,)

Corpo da função

End funcion

Os argumentos das função têm o nome de parâmetros formais

O corpo da função é uma expressão que vai ter um valor quando os parâmetros formais forem substituídos por
valores (parâmetros reais)

Exemplo: Criar uma função para calcular o quadrado da soma de dois números.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 24

As funções criadas pelo utilizador ficam disponíveis no comando Inserir ⇒ Função na categoria Definidas pelo
utilizador.

2.8. FUNÇÕES DE INFORMAÇÃO:

As funções de informação servem para determinar o tipo de dados guardados numa célula. As funções de
informação incluem um grupo de funções de folha de cálculo conhecidas por funções É e devolvem VERDADEIRO
se as células satisfizerem uma condição.

TIPO(valor) ou TYPE devolve o tipo de valor de acordo com a seguinte tabela:

Número 1

Texto 2

Valor lógico 4

Fórmula 8

Valor de erro 16

Matriz 64

=TIPO("Maria") ⇒ 2

=TIPO(E4) ⇒ 2 - porque o resultado da fórmula da célula E4 é um texto (Aprovado)

=TIPO(2+"Maria") ⇒ 16

CONTAR.VAZIO(intervalo) ou COUNTBLANK conta o número de células em branco no intervalo especificado.


As células com fórmulas que devolvem "" também são contadas. As células com valores nulos (zero) não são
contadas.

É.CÉL.VAZIA(valor) ou ISBLANK VERDADEIRO se valor se referir a uma célula em branco, senão FALSO

É.ERRO(valor) ou ISERR VERDADEIRO se valor se referir a um valor de erro excepto #N/D

É.ERROS(valor) ou ISERROR VERDADEIRO se valor se referir a qualquer valor de erro

É.LÓGICO(valor) ou ISLOGICAL VERDADEIRO se valor se referir a um valor lógico

É.NÃO.DISP(valor) ou ISNA VERDADEIRO se valor se referir ao valor de erro #N/D

É.NÃO.TEXTO(valor) ou ISNONTEXT VERDADEIRO se valor se referir a qualquer item que não seja texto

É.NÚM(valor) ou ISNUMBER VERDADEIRO se valor se referir a um número

É.REF(valor) ou ISREF VERDADEIRO se valor se referir a uma referência

É.TEXTO(valor) ou ISTEXT VERDADEIRO se valor se referir a texto


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 25

Exemplos:

=É.TEXTO("Maria") ⇒ VERDADEIRO

=É.NÃO.TEXTO("Maria") ⇒ FALSO

=É.ERRO(2/0) ⇒ VERDADEIRO

=É.NÚM("22") ⇒ FALSO

INFORMAÇÃO(texto_tipo) ou INFO devolve informações sobre o ambiente de trabalho actual. Ver Ajuda/Help
para ver as várias possibilidades para texto_tipo

=INFORMAÇÃO("directório") devolve o caminho da pasta actual

=INFORMAÇÃO("release") devolve a versão do Excel

ÉÍMPAR(núm) ou ISODD devolve VERDADEIRO se núm truncado para for ímpar

ÉPAR(núm) ou ISEVEN devolve VERDADEIRO se núm 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:

Não apareça nada ("") se o Tipo e o Valor não estiverem preenchidos:

se o Saldo anterior tiver Erro!

se o Saldo anterior for uma String vazia

Apareça Erro! se o Tipo não for nem d (débito) ou c (crédito)

se o Valor não for um número ou uma fórmula

se o Valor estiver em branco (0)

Apareça o saldo da conta se tudo bem


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 26

2.9. TIPOS DE ERROS:

• ##### O valor numérico introduzido numa célula ou o resultado de uma fórmula é demasiado extenso que
não cabe na célula, ou está a subtrair datas ou horas e o resultado deu um número negativo.

• #DIV/0! Está a dividir um número por zero

• #NOME? ou #NAME? Está a inserir um nome que não está definido, ou está a introduzir um texto sem
estar entre aspas, ou não escreveu os dois pontos (:) ao definir um intervalo de células

• #VALOR! ou VALUE! Introduziu uma fórmula matemática e está a utilizar um operando que é texto, ou
está a indicar um intervalo de células quando é esperado um valor único

• #REF! Apagou células que fazem parte de uma fórmula

• #N/D ou #N/A Não está disponível a informação para o cálculo que quer executar

• #NÚM! ou #NUM! Está a utilizar um argumento que não é valido para a função, ou a função que está a
utilizar não encontrou resultado nenhum, ou introduziu uma fórmula cujo o resultado e demasiado pequeno
ou demasiado grande para ser representado na folha de cálculo

• #NULO! ou #NULL! Utilização de um operador de intervalos ou de uma referência de célula incorrectos.


Por exemplo na intersecção de intervalos quando não há células comuns
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 27

3. DATAS E HORAS, NÚMEROS ALEATÓRIOS (RAND), SUMIF, COUNTIF

Objectivos:
! Funções de data e hora

! Funções matemáticas Aleatório e Aleatórioentre

! Modelo de simulação

Resumo:
Introdução:

A unidade de tempo no Excel para o Windows é o dia. Cada dia é representado por um número de série 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 cálculo, essa data é guardada como um número de série. Número esse
que corresponde ao número de dias que passaram desde 1 de Janeiro de 1900 até à data introduzida.

Os números à direita do ponto decimal no número de série representam as horas a contar da meia-noite. Por exemplo
0.5 representa o meio-dia porque a diferença do meio-dia para a meia-noite é exactamente igual a meio dia.

O número de série 367.5 representa, então, a combinação de data-hora: 12:00 de 1 de Janeiro de 1901.

Assim, porque as datas e horas são números podemos criar fórmulas para trabalhar com as datas e horas.

Para introduzirmos datas não necessitamos, felizmente, de saber os números de série 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 mês (1..31)

m - corresponde ao mês do ano em número (1..12)

mmm - corresponde ao mês 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 não for indicado AM/PM o Excel assume as horas de 1..24
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 28

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 formatação de data, pelo que não visualizamos o número de série correspondente. Para
sabermos qual o número podemos formatar as células com datas para número.

Como as datas são números podemos testar se introduzimos correctamente uma data pelo modo como fica alinhada
na célula: se á direita introduzimos bem, se á esquerda introduzimos de uma forma incorrecta.

3.1. INTRODUÇÃO DE UMA SÉRIE DE DATAS

Podemos inserir uma série de datas recorrendo ao comando Editar ⇒ Preencher ⇒ Série... (Edit ⇒ Fill ⇒ Series...)
ou ao AutoFill com o rato.

3.2. FUNÇÕES DE DATA E HORA

Com as funções de data e hora, podemos analisar e trabalhar com valores de data e hora nas fórmulas.

AGORA() ou NOW devolve o número de série da data e hora actuais. O resultado da função vai-se alterando à
medida que o tempo vai passando, desde que a folha seja calculada.

HOJE() ou TODAY devolve o número de série da data actual (número inteiro)

DIA(núm_série) ou DAY devolve o dia do mês que corresponde a núm_série. O dia é dado como um número inteiro
que varia entre 1 e 31. O núm_série pode ser dado como texto, "15-04-1993" ou "15-05-93", em vez de um número

=DIA("15-Abr-1993") ⇒ 15

MÊS(núm_série) ou MONTH devolve o mês correspondente a núm_série. O mês é fornecido como um número
inteiro, variando entre 1 (Janeiro) e 12 (Dezembro)

=MÊS(367) ⇒ 1
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 29

ANO(núm_série) ou YEAR devolve o ano correspondente a núm_série. O ano é fornecido como um número inteiro
no intervalo 1900-2078 (?)

DIA.SEMANA(núm_série; Tipo_devolvido) ou WEEKDAY devolve o dia da semana correspondente a núm_série.


O dia é devolvido como um número inteiro que varia entre 1 (Domingo) e 7 (Sábado) se Tipo_devolvido for 1 ou
omitido. Se o Tipo_devolvido for 2 então devolve de 1 (Segunda-feira) a 7 (Domingo), se o Tipo_devolvido for 3
então devolve de 0 (Segunda-feira) a 6 (Domingo).

Considerando que hoje é dia 4 de Novembro de 1998

⇒ 4 se formatar para dddd dá Quarta-feira


=DIA.SEMANA(HOJE())⇒

=DIA.SEMANA(HOJE();2) ⇒ 3 se formatar para dddd dá Terça-feira (o que é incorrecto)

=DIA.SEMANA(HOJE();3) ⇒ 2 se formatar para dddd dá Segunda-feira (o que é incorrecto)

DATA(ano; mês; dia) ou DATE devolve o número de série de uma determinada data. Se mês for maior que 12,
então mês somará este número de meses ao primeiro mês do ano especificado ou mesmo acontecendo para dia.

=DATA(1998;13;4) dá o número de série correspondente a 4 de Janeiro de 1999

FIMMÊS(data_inicial; meses) ou EOMONTH devolve o número de série da data para o último dia do mês, que é o
número indicado de meses antes ou depois de data_inicial. Meses é o número de meses antes (se for negativo) ou
depois (se for positivo) da data_inicial.

=FIMMÊS(DATA(1998;11;11);1) dá o número de série correspondente a 31/Dez/1998

DIATRABALHO(data_inicial; dias; feriados) ou WORKDAY devolve o número de série correspondente ao


número 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
números de série de data a serem eliminados do calendário 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 número 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(núm_série) ou HOUR devolve a hora correspondente a núm_série. A hora é devolvida como um número
inteiro, que pode variar entre 0 (12:00 A.M.) e 23 (11:00 P.M.). O núm_série pode ser dado como texto, "16:48:00"
ou "4:48:00 PM", em vez de um número.

MINUTO(núm_série) ou MINUTE devolve o minuto correspondente a núm_série. O minuto é fornecido como um


número inteiro, entre 0 e 59

SEGUNDO(núm_série) ou SECOND devolve o segundo correspondente a núm_série. O segundo é fornecido como


um número inteiro no intervalo de 0 a 59
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 30

TEMPO(hora; minutos; segundos) ou TIME devolve o número de série de uma hora particular. O número de série
devolvido é uma fracção decimal que varia de 0 a 0,99999999. Hora é um número de 0 a 23 que representa a horas,
minutos é um número de 0 a 59 que representa os minutos e segundos é um número de 0 a 59 que representa os
segundos. Se minutos for maior que 59, então minutos aumentará o número de horas o mesmo acontecendo aos
minutos quando os segundos forem superiores a 59.

=TEMPO(3;60;61) dá o número de serie correspondente a 4:01:01

Exemplos:

Calcular o número de horas, minutos e segundos que uma máquina trabalhou num dia.

Calcular a idade de uma pessoa em anos.

Ver Ajuda da função FRACÇÃOANO ou YEARFRAC


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 31

3.3. FUNÇÕES MATEMÁTICAS / ALEATÓRIO E ALEATÓRIOENTRE

ALEATÓRIO( ) ou RAND devolve um número aleatório (real) no intervalo [0;1[, distribuído uniformemente. Um
novo número aleatório é devolvido cada vez que a folha de cálculo for calculada.

Para gerar um número real aleatório entre Limite_inferior e Limite_superior, utilize:

=ALEATÓRIO() * (Limite_Superior. - Limite_Inferior) + Limite_Inferior

ALEATÓRIOENTRE(inferior; superior) ou RANDBETWEEN devolve um número aleatório inteiro entre inferior


e superior inclusive

=ALEATÓRIOENTRE(1;6) permite simular o lançamento de um dado

Para evitar que os números aleatórios gerados se alterem cada vez que a folha é calculada pode, através do copiar,
passar das fórmula para valores (resultado das fórmulas).

3.4. FUNÇÃO MATEMÁTICA SOMA.SE:

SOMA.SE(intervalo; critérios; intervalo_soma) ou SUMIF adiciona as células especificadas por um determinado


critério. Intervalo é o intervalo de células onde vai testar o critério, critérios são os critérios na forma de um número,
expressão ou texto, que definem quais as células a serem adicionadas e intervalo_soma é o intervalo de células a
serem realmente somadas. Se omitir intervalo_soma o Excel vai somar as célula do intervalo.

3.5. FUNÇÃO ESTATÍSTICA CONTAR.SE:

CONTAR.SE(intervalo; critérios) ou COUNTIF devolve o número de células do intervalo que não estejam em
branco satisfazendo um determinado critério (critérios)

Exemplos:

Calcular o número de notas positivas em cada uma das provas:

Na célula B12 =CONTAR.SE(B4:B9;">=10") copiar para a célula C12

Calcular o número de notas 10 em cada uma das provas:

Na célula B14 =CONTAR.SE(B4:B9;10) copiar para a célula C14

Calcular a média dos alunos aprovados:

Na célula D13 =SOMA.SE(E4:E9;"Aprovado";D4:D9)/CONTAR.SE(E4:E9;"Aprovado")


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 32
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 33

4. FUNÇÕES DE TEXTO: LOWER, UPPER, LEFT, RIGHT, FIND, SUBST E


FUNÇÕES DE CONSULTA EM TABELAS: VLOOKUP, HLOOKUP

Objectivos:
! Funções de texto

! Funções de consulta e referência

Resumo:
Funções de texto:

Com as funções de texto, podemos manipular cadeias de texto em fórmulas.

TEXTO(valor; formato_texto) ou TEXT converte um valor para texto num formato numérico específico. O
formato_texto é um formato em texto do comando Formatar ⇒ Células... ⇒ Número

4.1. FUNÇÕES DE TEXTO

TEXTO(HOJE();"dd-mmm-aa") ⇒ 18-Nov-98

=TEXTO(1500.7;"Esc. 0.00") ⇒ Esc .1500.70

NÚM.CARACT(texto) ou LEN devolve o número de caracteres numa cadeia de texto.

=NÚM.CARACT("Informática de Empresa") ⇒ 22

=N ÚM.CARACT("")⇒ 0

=NÚM.CARACT(245) ⇒ 3

=NÚM.CARACT(245.7) ⇒ 5

COMPACTAR(texto) ou TRIM remove todos os espaços do texto excepto os espaços únicos entre palavras.

=COMPACTAR("Informática de Empresa ") ⇒ Informática de Empresa

MINÚSCULAS(texto) ou LOWER converte as letras maiúsculas para minúsculas

MAIÚSCULAS(texto) ou UPPER converte as letras minúsculas para maiúsculas

INICIAL.MAIÚSCULA(texto) ou PROPER coloca a primeira letra do texto em maiúscula e todas as outras letras
do texto depois de qualquer carácter diferente de uma letra. Converte todas as outras letras para minúsculas.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 34

Exemplos:

Considere que a célula A12 tem o seguinte texto: Inf. empresa A1 sala 1SE1

=MAIÚSCULAS(A12) ⇒ INF. EMPRESA A1 SALA 1SE1

=MINÚSCULAS(A12) ⇒ inf. empresa a1 sala 1se1

=INICIAL.MAIÚSCULA(A12) ⇒ Inf. Empresa A1 Sala 1Se1

EXACTO(texto1; texto2) ou EXACT compara duas cadeias de texto e devolve VERDADEIRO se forem
exactamente iguais, caso contrário, devolve FALSO. A função distingue entre letras maiúsculas e minúsculas, mas
ignora as diferenças de formatação.

=EXACTO(22;22) ⇒ VERDADEIRO

=EXACTO("Informática";"informática") ⇒ FALSO

ESQUERDA(texto; núm_caract) ou LEFT devolve núm-caract mais à esquerda numa cadeia de texto. Se
núm_caract for omitido é considerado 1.

DIREITA(texto; núm_caract) ou RIGHT devolve núm-caract mais à direita numa cadeia de texto. Se núm_caract for
omitido é considerado 1.

SEG.TEXTO(texto; núm_inicial; núm_caract) ou MID devolve um número específico de caracteres (núm_caract)


da cadeia de texto (texto), começando na posição núm_inicial.

Exemplos:

Considere que a célula A14 tem o seguinte texto: Informática 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; núm_inicial) ou FIND localiza uma cadeia de texto (texto_a_localizar)


dentro de outra cadeia de texto (no_texto) e devolve o número de carácter onde texto_a_localizar ocorre pela
primeira vez. Núm_inicial é o número do carácter a partir do qual será feita a pesquisa, se omitido é 1. Se
texto_a_localizar for um texto vazio a função devolve o primeiro carácter da cadeia de procura. A função distingue
maiúsculas e minúsculas e não aceita caracteres globais (? e *).

=LOCALIZAR("e";"Informática de Empresa") ⇒ 14
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 35

=LOCALIZAR("E";"Informática de Empresa") ⇒ 16

=LOCALIZAR("e";"Informática de Empresa";15) ⇒ 20

=LOCALIZAR(1;258111;1) ⇒ 4

PROCURAR(texto_procurado; no_texto; núm_inicial) ou SEARCH devolve o número de carácter onde


texto_procurado ocorre pela primeira vez. Pode utilizar-se os caracteres globais ? (um carácter) e * (série de
caracteres) no texto_procurado. Para procurar um ? ou um * temos que fazer ~? ou ~*. A função não distingue
maiúsculas e minúsculas.

=PROCURAR("e?";"Informática de Empresa") ⇒ 14

=PROCURAR("e*";"Informática de Empresa") ⇒ 14

=PROCURAR("e?a";"Informática de Empresa") ⇒ 20

=PROCURAR(11;1258111;1) ⇒ 5

SUBSTITUIR(texto_antigo; núm_inicial; núm_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. Núm_inicial é a
posição do carácter em texto_antigo que deseja substituir por novo_texto. Núm_caract é o número 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; núm_da_ocorrência) ou SUBSTITUTE coloca novo_texto no lugar de


texto_antigo numa cadeia de texto (texto). Núm_da_ocorrência especifica que ocorrência de texto_antigo se deseja
substituir por novo_texto. Se indicar núm_da_ocorrência, apenas essa ocorrência de texto_antigo será substituída,
senão cada ocorrência 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; núm_vezes) ou REPT repete um texto (texto) um determinado número de vezes (núm_vezes).
Núm_vezes é um número positivo, se for 0 dá texto vazio, se não for um inteiro, será truncado. O resultado da
função não pode ser superior a 255 caracteres.

=REPETIR("Hi!";4) dá Hi!Hi!Hi!Hi!
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 36

VALOR(texto) ou VALUE converte texto num número. Texto pode estar em qualquer um dos formatos numérico
constante, data ou horas. Normalmente não é preciso utilizar a função VALOR numa fórmula pois o Excel converte
automaticamente texto em números.

Os computadores utilizam números para representar caracteres. A tabela mais utilizada é a ASCII (American
Standard Code for Information Interchange) que recorre a um número entre 1 e 255 para representar cada letra,
número e símbolo.

CARÁCT(núm) ou CHAR devolve o carácter especificado pelo número de código

=CARÁCT(55) ⇒ 7 =CARÁCT(75) ⇒ K

=CARÁCT(107) ⇒ k

CÓDIGO(texto) ou CODE devolve um código numérico para o primeiro carácter de uma série de texto

=CÓDIGO(77) ⇒ 55 =CÓDIGO("K") ⇒ 75

=CÓDIGO(CARÁCT(107)) ⇒ 107

4.2. FUNÇÕES DE CONSULTA E REFERÊNCIA

Estas funções permitem localizar valores em listas ou tabelas ou localizar a referência de uma célula.

SELECCIONAR(núm_índice; valor1; valor2; ...) ou CHOOSE devolve um valor de uma lista armazenada como
argumentos da função. Núm_índice especifica qual o argumento de valor seleccionado. Núm_índice tem de ser um
número entre 1 e 29 ou uma fórmula ou referência a uma célula que contenha um número entre 1 e 29. Se
núm_índice for 1, a função devolve valor1, se for 2 devolve valor2 e... Se núm_índice for uma fracção, será
truncada para o menor inteiro. Valor1, valor2,... são 1 a 29 argumentos de valor a partir dos quais a função
selecciona um valor ou uma acção a ser realizada com base no núm_índice. Os argumentos podem ser números,
referências de célula, nomes definidos, fórmulas, funções de macro ou texto.

=SELECCIONAR(2;"Domingo";"Segunda";"Terça";"Quarta";"Quinta";"Sexta","Sábado") Segunda

Se hoje for dia 18/Nov/98 então

=SELECCIONAR(DIA.SEMANA(HOJE());"Domingo";"Segunda";"Terça";"Quarta";"Quinta";"Sexta","Sábado")
Quarta

=SOMA(A1:SELECCIONAR(3;A10;A20;A30)) é igual a =SOMA(A1:A30)

CORRESP(valor_procurado; matriz_procurada; tipo_correspondência) ou MATCH Devolve a posição relativa de


um elemento numa matriz que coincide com um valor especificado na forma especificada.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 37

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 (número, texto ou valor lógico) ou uma
referência de célula de um número, texto, ou valor lógico.

Matriz_procurada é um intervalo que contém valores possíveis de procura e pode ser uma matriz ou uma referência
matricial.

Tipo_correspondência é o número -1, 0 ou 1 que especifica o tipo de correspondência.

Se tipo_correspondência for 1 ou omitido, a função 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_correspondência 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_correspondência 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 função não faz distinção entre letras maiúsculas e minúsculas.

=CORRESP("Joana";A4:A9;1) ⇒ 2 (mas, atenção)

=CORRESP("Joana";A4:A9;0) #N/D

=CORRESP("Joana";A4:A9;-1) #N/D

PROCV(valor_procurado; matriz_tabela; núm_índice_coluna; procurar_intervalo) ou VLOOKUP

Localiza um valor específico na primeira coluna esquerda de matriz_tabela e devolve o valor na célula indicada por
núm_índice_coluna.

Valor_procurado é o valor a ser encontrado na primeira coluna da matriz. Valor_procurado pode ser um valor, uma
referência ou uma cadeia de texto.

Matriz_tabela é o intervalo em que os dados são procurados. Se procurar_intervalo for VERDADEIRO, os valores
na primeira coluna de matriz_tabela deverão estar em ordem ascendente: ..., -2, -1, 0, 1, 2, ... , A-Z, FALSO,
VERDADEIRO, se localizar_intervalo for FALSO a matriz_tabela não precisa de estar ordenada.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 38

Núm_índice_coluna é o número da coluna em matriz_tabela a partir do qual o valor correspondente deve ser
devolvido. Um núm_índice_coluna de 1 devolve o valor na primeira coluna em matriz_tabela.

Localizar_intervalo é um valor lógico que especifica se quer que a função realize uma procura exacta (FALSO) ou
por intervalos (VERDADEIRO ou omitida), Se uma correspondência exacta não for encontrada é devolvido o valor
maior mais próximo que seja menor que o valor_procurado.

=PROCV("João";A4:E9;5) ⇒ Reprovado

=PROCV("Joana";A4:E9;5) ⇒ Aprovado (atenção - dá o Carlos)

=PROCV("Joana";A4:E9;5;False) ⇒ #N/D (procura exacta)

PROCH(valor_procurado; matriz_tabela; núm_índice_lin; localizar_intervalo) ou HLOOKUP

Localiza um valor específico na linha superior de uma matriz e devolve o valor na célula indicada.

PROC ou LOOKUP tem duas formas:

Forma vectorial (um vector é uma matriz que contém 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 posição correspondente a vector_result (tem que ter o mesmo tamanho
de vector_proc) e devolve este valor

=PROC("João";A4:A9;E4:E9) ⇒ Reprovado

=PROC("Joana";A4:A9;E4:E9) ⇒ Aprovado (mas, atenção - procura por intervalos)

Forma matricial (forma a evitar, dar preferência ao PROCV e ao PROCH)

PROC(valor_procurado; matriz) procura por intervalos o valor específico na primeira linha ou coluna de uma matriz
(tem que estar ordenada por ordem ascendente), desce ou cruza para a célula 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("João";$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; núm_linha; núm_coluna) devolve o valor de um elemento numa matriz, seleccionado pelos índices
do número de linha (núm_linha) e coluna (núm_coluna).

=ÍNDICE(A4:E9;3;2) ⇒ 9
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 39

ÍNDICE(ref; núm_linha; núm_coluna; núm_área) devolve a referência da célula na intersecção da linha (núm_linha)
e coluna (núm_coluna) especificadas. Se núm_linha ou núm_coluna for 0, a função 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
parêntesis (A4:B9;E4:E9) e, núm_área selecciona o intervalo em ref a partir do qual deve ser fornecida a intersecção
de núm_linha com núm_coluna. A primeira área seleccionada ou inserida recebe o número 1, a segunda recebe o
número 2 e assim por diante. Se núm_área for omitido, a função considera a área 1.

=SOMA(ÍNDICE(A4:E9;0;2)) ⇒ =SOMA(B4:B9) ⇒ 80

=ÍNDICE((A4:B9;E4:E9);2;1;2) ⇒ a referência E5 que tem Aprovado

Exercício:

Considere uma loja de informática que vende Hardware (HW), Software (SW) e Livros (LI).

Para cada transacção (venda)

O Código 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.

Códigos 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 códigos e taxas de IVA (C12:D15)

2. Na célula F5 -> =C5*D5*(1+PROCV(E5;C$12:D$15;2;FALSO))

3. Copiar para as células F6:F9

b) Calcular a quantidade vendida de jogos

1. Na célula G5 -> =DIREITA(B5;NÚM.CARACT(B5)-4)

2. Copiar para baixo

3. Numa célula qq. =SOMA.SE(G5:G9;"Games";C5:C9) ⇒ 10

c) Calcular o valor do fornecedor MS

1. Na célula H5 -> =SEG.TEXTO(B5;3;2)

2. Copiar para baixo

3. Numa célula qq. =SOMA.SE(H5:H9;"MS";F5:F9) ⇒ 187200

d) Calcular o valor da categoria HW

1. Na célula I5 -> =ESQUERDA(B5;2)

2. Copiar para baixo


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 40

3. Numa célula qq. =SOMA.SE(I5:I9;"HW";F5:F9) ⇒ 468000


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 41

FUNÇÕES DE BASE DE DADOS: DGET, DCOUNTA, DSUM, ... CRITÉRIOS

Objectivos:
! Tabelas

! Funções de base de dados

! Critérios

Resumo:
Tabelas:

Uma maneira de armazenar dados relacionados (facturas, clientes, ...) numa folha de cálculo é através de uma tabela
(ou lista ou base de dados). Numa base de dados as linhas são registos e as colunas são os campos. A primeira linha
da lista contém rótulos (nomes) para as colunas (campos).

5.1. CUIDADOS A TER AO CRIAR TABELAS

1. As colunas devem ter nome

2. Não utilizar linhas/colunas em branco entre os dados

3. Não inserir dados nas células abaixo da Tabela

4. Não inserir espaços em branco no inicio do conteúdo das células

5. Usar o mesmo formato para as células de uma coluna

6. Evitar colocar dados essenciais à esquerda ou à direita da Tabela. (Os dados poderão estar ocultos quando
filtrar a Tabela)

Exemplo:
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 42

5.2. FUNÇÕES DE BASE DE DADOS

As funções de base de dados estão especialmente vocacionadas para analisar dados em listas. Estas funções
devolvem informações sobre elementos de uma lista que satisfazem uma condição específica ou um critério. As
funções de base de dados são conhecidas por funções BD pois o seu nome começa por BD (D para o Excel em
inglês).

As funções BD são as seguintes: BDMÉDIA (DAVERAGE), BDCONTAR (DCOUNT), BDCONTAR.VAL


(DCOUNTA), BDOBTER (DGET), BDMÁX (DMAX), BDMIN (DMIN), BDMULTIPL (DPRODUCT),
BDDESVPAD (DSTDEV), BDDESVPADP (DSTDEVP), BDSOMA (DSUM), BDVAR (DVAR) e BDVARP
(DVARP).

Com excepção da função BDOBTER todas as outras funções realizam a mesma operação que a função sem o
prefixo BD, ou seja, a função BDSOMA faz o equivalente à função SUM, só que agora apenas soma as linhas
(registos) que satisfazem um determinado critério.

A sintaxe destas funções é a seguinte:

=BDNOME(base de dados; campo; critérios) onde:

Base de dados é o intervalo de células que formam a lista ou base de dados.

Campo indica a coluna utilizada na função. Este argumento pode ser dado como o rótulo (nome do campo) da
coluna colocado entre aspas, ou como um número que representa a posição da coluna na lista: 1 para a primeira
coluna, 2 para a segunda coluna, etc., ou como a referência à célula que contém o rótulo.

Critérios é o intervalo de células que contém as condições especificadas. Pode utilizar qualquer intervalo para os
argumentos de critérios, desde que inclua pelo menos um rótulo de coluna (nos critérios comparados) e pelo menos
uma célula abaixo do rótulo da coluna para especificar uma condição para a coluna.

O Excel não faz distinção entre caracteres maiúsculos e caracteres minúsculos ao avaliar os dados.

Exemplo:

A fórmula em C24 vai contar o número de células 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 operação (função) os registos que obedecem
ao critério indicado em B23:B24.

Função BDOBTER:

Devolve um valor único de uma coluna de uma lista que corresponde ao critério indicado.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 43

Se nenhum registo satisfizer os critérios, a função devolve o valor de erro #VALOR!, e se houver mais do que um
registo a satisfazer os critérios, a função devolve o valor de erro #NÚM!.

5.3.CONSTRUÇÃO DE CRITÉRIOS

5.3.1. Critérios comparados simples

Para localizar linhas numa lista que contenha um valor exacto, escreva o texto, número, data ou valor lógico na
célula existente abaixo do rótulo de critério. Quando utiliza texto como critério o Excel localiza todos os itens
começados por esse texto.

25 Curso

26 OGE

Considera todos os registos cujo o campo Curso começa por OGE

Para que só sejam localizados os itens que contenham apenas o texto especificado (OGE), o critério tem que ter a
fórmula seguinte, ="=OGE"

25 Curso

26 =OGE

Critérios com datas

25 Data Nascimento

26 15-06-74

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
carácter 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?

25 Curso

26 ?G*

Considera todos os registos cujo o campo Curso começa por um carácter qualquer seguido de um G
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 44

Critérios com operadores de comparação

25 Data Nascimento

26 >=15-06-74

Considera todos os registos cujo o campo Data Nascimento é maior ou igual a 15-06-74.

5.3.2 Critérios compostos

Os critérios podem incluir múltiplas condições aplicadas numa só coluna ou múltiplos critérios aplicados a múltiplas
colunas.

Conjunção:

B C

25 Curso Média

26 OGE >=14

Considera todos os registos cujo o Curso começa por OGE e Média é maior ou igual a 14.

B C

25 Média Média

26 >=14 <19

Considera todos os registos com Média superior ou igual a 14 mas inferior a 19.

Disjunção:

25 Curso

26 OGE

27 FIN

28 GEI

Considera todos os registos cujo Curso começa por OGE ou por FIN ou por GEI.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 45

B C

25 Curso Média

26 OGE

27 >=14

Considera todos os registos cujo Curso começa por OGE ou cuja Média é maior ou igual a 14.

B C

25 Curso Média
26 OGE
27 FIN
28 >=14
Considera todos os registos com Curso começado por OGE, ou Curso começado por FIN ou Média superior ou
igual a 14.

B C

25 Curso Média

26 OGE >=14

27 FIN

(Curso=OGE e Média>=14) ou Curso=FIN

Para localizar linhas que correspondam a uma de duas condições numa coluna e a uma de duas condições noutra
coluna, escreva os critérios em linhas separadas. Por exemplo, o intervalo de critérios seguinte apresenta as linhas
que contêm "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.

5.3.3 Critérios calculados

Pode utilizar um valor calculado que resulte de uma fórmula como critério. Quando utilizar uma fórmula para criar
um critério, não utilize um rótulo de coluna como rótulo de critério. Deixe o rótulo de critério em branco ou utilize
um rótulo que não seja um rótulo de coluna na lista.

25 Superior média

26 =E4>Média(E$4:E$10)
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 46

Na célula B26 aparecia VERDADEIRO, o que não tem importância nenhuma na avaliação que o Excel faz ou
fazemos:

25 Superior média

26 =Média>Média(E$4:E$10)

Na célula B26 aparecia FALSO, o que não tem importância nenhuma na avaliação que o Excel faz.

Ambos os critérios conduzem ao mesmo resultado, ou seja:

Consideram todos os registos cujo campo Média tem um valor superior à média aritmética do campo Média.

Normalmente temos que inserir as funções utilizadas em critérios com referências absolutas. Isto porque o Excel ao
avaliar se um registo satisfaz um critério é como se copiasse o critério para as linhas (registos) em baixo.

A fórmula utilizada para uma condição tem de fazer referência ao rótulo de coluna (por exemplo, Média) ou à
referência ao campo correspondente no primeiro registo (por exemplo E4).

Pode utilizar um rótulo de coluna na fórmula em vez de uma referência relativa de célula ou de um nome de
intervalo.

Quando o Excel apresentar um valor de erro tal como, #NOME? ou #VALOR!, na célula que contém o critério,
poderá ignorá-lo porque não afecta o modo como a lista é analisada.

25 Curso e média

26 =E(D4="OGE";E4>=14)

Considera todos os registos cujo Curso é igual a OGE e Média é maior ou igual a 14.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 47

5.4. FILTROS AUTOMÁTICOS E FILTROS AVANÇADOS

5.4.1. Filtros Automáticos

Colocando o cursor de folha dentro da tabela e fazendo Dados ⇒ Filtro ⇒ Filtro Automático, a tabela fica com o
aspecto seguinte:

Esta opção colocou, em cada nome de campo, a possibilidade de abrir uma janela que contém váriasopções de
filtragem da tabela.
Agora, dentro de cada campo, é possível efectuar os seguintes filtros:
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 48

Este tipo de filtro apenas permite fazer a operação lógica E entre campos. Dentro do mesmo campo podemos,
através da opção Personalizar, fazer E ou Ou utilizando os seguintes operadores de comparação:

Na janela dos operadores de comparação existem ainda as opções: contém e não contém.

Exemplo:
Se pretendessemos filtrar a Tabela para visualizarmos apenas os alunos com trabalho realizado em Banco
obteríamos o seguinte resultado:

Note-se que, quando uma Tabela se encontra filtrada, os números das linhas e a seta do campo através do qual se
filtrou a Tabela encontram-se a azul.

5.4.2. Filtros Avançados

A criação de filtros avançados permite maior flexibilidade nos modos de filtragem e, desde logo, permite dois tipos
de filtragem dos dados de uma Tabela, a saber: limitar o número de registos visíveis e limitar o número de registos
visíveis em função do critério definido.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 49

Quando acedemos a esta opção através de Dados ⇒ Filtro ⇒ Filtro Avançado, somos confrontados com os
seguintes elementos:

A opção Filtrar Lista no local (in place) significa que a tabela será ela própria filtrada após a execução do
comando, ou seja, depois de executado o comando, o número de registos visíveis na tabela serão apenas aqueles que
satisfazem o(s) critério(s) definido(s).
A opção Copiar para outro local obrigaria a definir uma zona para a extracção dos registos em Copiar para (que
desta feita ficaria activo). A área de extracção pode ser criada definindo todos ou apenas alguns dos campos da
tabela para os quais será feita a extracção dos registos que “passem” pelo critério definido.
Enquanto as opções anteriores funcionam em alternativa, a opção 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
opções Dados ⇒ Filtro ⇒ Filtro Avançado com a colocação do cursor da folha dentro da Tabela, o Excel
automaticamente selecciona a Tabela de dados.
Na zona reservada ao Intervalo de Critérios devemos colocar a área dentro da qual se situam os critérios com os
quais pretendemos filtrar a Tabela.

Exemplo:

Para filtrar a Tabela, podíamos definir como critério:

Todos os indivíduos do Sexo F ou Trabalho em Banco teríamos que definir o critério do seguinte modo

A B
13 Sexo Trabalho
14 F
15 Banco
Ou

Todos os indivíduos do Sexo F e Trabalho em Banco teríamos que definir o critério do seguinte modo

A B
16 Sexo Trabalho
17 F Banco
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 50

Na zona referente ao Intervalo de Critérios teríamos que definir a área ou o nome do critério pretendido, ou seja,
no primeiro caso $A$13:$B$15 e, no segundo caso, $A$16:$B$17.

Filtrando a Tabela no Local teríamos como resultado, no primeiro caso:

e, no segundo caso, o resultado seria:


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 51

5. FUNÇÕES FINANCEIRAS E DE ENGENHARIA

Objectivos:
Funções financeiras

Funções de engenharia

Resumo:
Funções financeiras:

Na matemática financeira o dinheiro tem um preço. E para ver como assim é basta pensar no seguinte exemplo: É
melhor 1000$ hoje ou 1200$ daqui a um ano?

6.1. FUNÇÕES FINANCEIRAS

Existem uma série de conceitos na matemática financeira e que se traduzem nos argumentos das funções financeiras
que importa ter bem presente.

Conceito / Argumento Descrição

Valor futuro / Vf Valor do investimento no fim do período

Valor presente / Vp ou Va Valor do investimento hoje

Número de períodos / Nper Número de períodos do investimento

Taxa / Taxa Taxa de juro ou desconto

Fluxos monetários / Valor1, Valor2... Fluxos periódicos quando diferentes

Pagamento / Pgto Fluxos periódicos quando constantes

Tipo / Tipo 0 se o pagamento é realizado no fim do período

1 se o pagamento é realizado no início do período

Período / Período Número de um fluxo periódico

VA(taxa; nper; pgto; vf; tipo) ou PV devolve o valor actual de um investimento onde:

Taxa é a taxa de juro por período;

Nper é o número total de períodos de pagamento;

Pgto é o pagamento feito em cada período (capital + juros) e não pode mudar durante a vigência do investimento;
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 52

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 empréstimo, por exemplo, é 0);

Tipo é o número 0 se o vencimento dos pagamentos for no fim do período ou 1 se for no início do período.

VF(taxa; nper; pgto; vp; tipo) ou FV devolve o valor futuro de um investimento de acordo com os pagamentos
periódicos e constantes e com uma taxa de juros constante onde:

Vp é o valor presente ou a soma total correspondente ao valor presente de uma série 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 periódico de uma anuidade de acordo com
pagamentos constantes e com uma taxa de juro constante.

PPGTO(taxa; período; nper; va; vf; tipo) ou PPMT devolve o pagamento de capital para determinado período de
investimento, de acordo com pagamentos constantes e periódicos e uma taxa de juro constante.

IPGTO(taxa; período; nper; va; vf; tipo) ou IPMT devolve o pagamento de juros para um determinado período
de investimento, de acordo com pagamentos periódicos e constantes e com uma taxa de juros constante.

TAXA(nper; pgto; va; vf; tipo;estimativa) ou RATE devolve a taxa de juro por período de uma anuidade.

NPER(taxa; pgto; va; vf; tipo) ou NPER devolve o número de períodos para investimento de acordo com
pagamentos constantes e periódicos e uma taxa de juros constante.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 53

Exemplo:

VAL(taxa; valor1; valor2; ...) ou NPV devolve o valor líquido actual de um investimento, baseado numa série de
fluxos monetários periódicos e numa taxa de desconto, onde:

Valor1; valor2;... são entre 1 e 29 argumentos que representam os pagamentos e a receitas do investimento. Valor1;
valor2;...têm de ter o mesmo intervalo de tempo entre eles e ocorrer no final de cada período;

A taxa pode representar a taxa de inflação 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 série de fluxos monetários representada
pelos números em valores, onde:

Valores é uma matriz ou uma referência a células que contêm números 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 número que se estima estar próximo do resultado de TIR


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 54

Exemplo:

Funções para calcular depreciações:

AMORT(custo; val_residual; vida_útil) ou devolve a amortização em linha recta de um activo durante um


período, onde:

Custo é o custo inicial do activo;

Val_residual é o valor no final da amortização ou valor residual;

Vida_útil é o número de períodos nos quais o activo se amortiza.

Exemplo:

Uma empresa adquiriu um veículo por 3000 contos com uma vida útil de 4 anos e pratica amortizações pelo método
das quotas constantes.

Calcular o valor da amortização anual:

=AMORT(3000000;0;4) dá 750,000.00 Esc

Funções para converter taxas:

EFECTIVA(taxa_nominal; núm_por_ano) ou EFFECT devolve a taxa anual de juros efectiva, dada a taxa
nominal de juros anuais e o número de períodos compostos por ano.

NOMINAL(taxa_efectiva; núm_por_ano) ou NOMINAL devolve a taxa de juro nominal anual dada a taxa
efectiva e o número de períodos compostos por ano.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 55

Exemplos:

Pretendendo efectuar um depósito 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 depósito?

6.2. FUNÇÕES DE ENGENHARIA

As funções de engenharia possibilitam análises de engenharia. A maior parte destas funções pertencem a três tipos:

• Funções para trabalhar com números complexos;

• Funções para converter valores entre vários sistemas de numeração, tais como decimal, hexadecimal,
octal e sistemas binários;

• Funções para converter valores entre vários sistemas de medidas.

CONVERTER (núm; de_unidade; para_unidade) converte um número de um sistema de medida para outro,
onde:

Núm é o valor em de_unidade a converter.

De_unidade é a unidade do número.

Para_unidade é a unidade do resultado.

A função aceita os seguintes valores de texto para de_unidade e para_unidade:

Peso e massa De_unidade Distância De_unidade


ou ou
para_unidade para_unidade
Grama "g" Metro "m"
Libra massa "sg" Milha inglesa "mi"
Massa em libras (peso) "lbm" Milha marítima "Nmi"
U (unid. de massa atómica) "u" Polegada "in"
Massa em onças (peso) "ozm" Pé "ft"
Jarda "yd"
Ångstrom "ang"
Pica (1/72 pol.) "Pica"
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 56

TEMPO De_unidade POTÊNCIA De_unidade


ou ou
para_unidade para_unidade
ANO "yr" Cavalo-potência "HP"
DIA "day" Watt "W"
HORA "hr"
MINUTO "mn" Magnetismo De_unidade
SEGUNDO "sec" ou
para_unidade
Pressão De_unidade Tesla "T"
ou Gauss "ga"
para_unidade
Pascal "Pa" Temperatura De_unidade
Atmosfera "atm" ou
mm de Mercúrio "mmHg" para_unidade
Graus Celsius "C"
Força De_unidade Graus Fahrenheit "F"
ou Graus Kelvin "K"
para_unidade
Newton "N" Medida líquida De_unidade
Dyna "dyn" ou
Libra-força "lbf" para_unidade
Colher de chá "tsp"
Energia De_unidade Colher de sopa "tbs"
ou Onça fluida "oz"
para_unidade Chávena "cup"
Joule "J" Pinto U.S. "pt"
Erg "e" Pinto U.K. "uk_pt"
Caloria termodinâmica "c" Quarto "qt"
Caloria IT "cal" Galão "gal"
Eletrão-volt "eV" Litro "l"
Cavalo-potência-hora "HPh"
Watt-hora "Wh"
Pé-libra "flb"
BTU "BTU"
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 57

Os seguintes prefixos de unidades abreviados podem ser anexados a qualquer valor métrico de_unidade ou
para_unidade.

Prefixo Multiplicador Abreviatura


hexa 1E+18 "E"
peta 1E+15 "P"
tera 1E+12 "T"
giga 1E+09 "G"
mega 1E+06 "M"
quilo 1E+03 "k"
hecto 1E+02 "h"
deca 1E+01 "e"
deci 1E-01 "d"
centi 1E-02 "c"
mili 1E-03 "m"
micro 1E-06 "u"
nano 1E-09 "n"
pico 1E-12 "p"
fento 1E-15 "f"
ato 1E-18 "a"

Exemplos:

CONVERTER(68; "F"; "C") ⇒ 20

Uma das provas mais carismáticas do atletismo é a milha. Calcule quantas voltas à pista é que os atletas têm que dar.

Quantos centímetros tem um monitor de 15 polegadas

=CONVERTER(15;"in";"cm") ⇒ 38.1

Quantos centímetros 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(núm; casas) converte um número decimal em hexadecimal, onde:

núm é o inteiro decimal que deseja converter. Se núm for negativo, casas será ignorado;

casas é o número de caracteres a serem utilizados. Se casas for omitido, aa função utiliza o número mínimo de
caracteres necessário.

=DECAHEX(1;2) ⇒ 01

=DECAHEX(15) ⇒ F

HEXADEC(núm) converte um número hexadecimal em decimal.

=HEXADEC("1E") ⇒ 30
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 58

6. ARRAYS / ANÁLISE DE TENDÊNCIA, CRESCIMENTO E PREVISÃO, TABELAS,


“GOALSEEK” E “SOLVER”, CONSTRUÇÃO DE CENÁRIOS

Objectivos:
! Fórmulas array ou matriz

! Funções: Frequência

! Tendência, Crescimento e Previsão

! Análise de Sensibilidade: Tabela de Dados

! Atingir Objectivo

! Solver

Resumo

7.1. ARRAYS

7.1.1. Fórmulas matriz (array)

Uma fórmula de matriz pode efectuar cálculos múltiplos e, em seguida, devolver um resultado único ou múltiplos
resultados. As fórmulas de matriz actuam de acordo com dois ou mais conjuntos de valores conhecidos como
argumentos de matriz. Cada argumento de matriz tem de ter o mesmo número de linhas e de colunas. As fórmulas
de matriz são criadas do mesmo modo que se criam fórmulas base, de valor único. Seleccione a célula ou as células
que contêm a fórmula, crie a fórmula e, em seguida, prima CTRL+SHIFT+ENTER para introduzir a fórmula.

Ao introduzir uma fórmula de matriz, o Excel insere automaticamente a fórmula entre { }. Se a fórmula de matriz
devolver apenas um resultado, faça clique sobre a célula na qual deseja introduzir a fórmula, se devolver múltiplos
resultados, seleccione o intervalo de células no qual deseja introduzir a fórmula. Depois introduzimos a fórmula e
para terminar CTRL+SHIFT+ENTER.

Para apagar uma fórmula matriz temos que seleccionar o grupo de células onde está a fórmula e carregar na tecla
Delete.

7.1.2. Fórmula combinação

{=MÉDIA(SE(A2:A10="Lisboa";D2:D10))}

A função SE localiza as células que, no intervalo A2:A10, têm "Lisboa" e, em seguida, devolve o valor da célula
correspondente do intervalo D2:D10 para a função MÉDIA.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 59

7.1.3. Fórmula cópia

Em vez de inserir a fórmula =D20*2 na célula E20 e depois copiar para as duas células imediatamente abaixo,
podemos seleccionar as células onde queremos a fórmula (E20:E22) e depois inserir a fórmula matriz =D20:D22*2
e terminar com CTRL+SHIFT+ENTER.

Função FREQUÊNCIA

FREQUÊNCIA(matriz_dados; matriz_bin) ou FREQUENCY devolve uma distribuição da frequência como uma


matriz vertical. Para um dado conjunto de valores e um dado conjunto de binários (ou intervalos), uma distribuição
de frequência conta quantos desses valores ocorrem em cada intervalo, onde:

Matriz_dados é uma matriz ou uma referência a um conjunto de valores cujas frequências deseja contar. Se
matriz_dados não contiver valores, a função produz uma matriz de zeros.

Matriz_bin é uma matriz ou referência a intervalos nos quais deseja agrupar os valores contidos em matriz_dados.
Se matriz_bin não contiver valores, FREQUÊNCIA fornecerá o número de elementos em matriz_dados.

A função tem que ser introduzida como uma fórmula de matriz depois de seleccionado um intervalo de células
adjacentes (número de elementos em matriz_bin mais um) em que se deseja que a distribuição fornecida apareça. A
função ignora células em branco e texto.

Exemplos:
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 60

7.2. FUNÇÕES TENDÊNCIA, CRESCIMENTO E PREVISÃO

Estas funções procuram encontrar a equação da recta que melhor representa os nossos dados, permitindo assim
encontrar (prever) dados ainda não disponíveis.

TENDÊNCIA(val_conhecidos_y; val_conhecidos_x; novos_valores_x; constante) ou TREND devolve valores ao


longo de uma tendência linear. Ajusta uma linha recta (utilizando o método dos mínimos quadrados) às matrizes
val_conhecidos_y e val_conhecidos_x. Devolve os valores y ao longo desta linha para a matriz de novos_valores_x
que especificar, onde:

Val_conhecidos_y é o conjunto de valores que já conhece na relação y = mx + b. Se a matriz val_conhecidos_y


estiver numa única coluna, cada coluna de val_conhecidos_x será interpretada como uma variável separada. Se a
matriz val_conhecidos_y for uma única linha, cada linha de val_conhecidos_x será interpretada como uma variável
separada.

Val_conhecidos_x é um conjunto opcional de valores de x que já deve conhecer na relação y = mx + b. A matriz


val_conhecidos_x pode incluir um ou mais conjuntos de variáveis. Se for utilizada apenas uma variável,
val_conhecidos_y e val_conhecidos_x podem ser intervalos de qualquer formato, desde que tenham dimensões
iguais. Se for utilizada mais de uma variável, val_conhecidos_y tem de ser um vector (ou seja, um intervalo com
altura de uma linha ou largura de uma coluna). Se val_conhecidos_x for omitido, será considerada a matriz
{1.2.3....} que é do mesmo tamanho que val_conhecidos_y.

Novos_valores_x são novos valores de x para os quais deseja que TENDÊNCIA forneça valores de y
correspondentes. Novos_valores_x deve incluir uma coluna (ou linha) para cada variável independente, da mesma
forma que val_conhecidos_x. Portanto, se val_conhecidos_y estiver numa única coluna, val_conhecidos_x e
novos_valores_x têm de ter o mesmo número de colunas. Se val_conhecidos_y estiver numa única coluna,
val_conhecidos_x e novos_valores_x devem ter o mesmo número de linhas. Se omitir novos_valores_x, será
considerado igual a val_conhecidos_x. Se omitir val_conhecidos_x e novos_valores_x, serão considerados como a
matriz {1.2.3....} que é do mesmo tamanho que val_conhecidos_y.

Constante é um valor lógico que força ou não a constante b a igualar-se a 0. Se constante for VERDADEIRO ou
omitida, b será calculado normalmente. Se constante for FALSO, b será definido para 0 e os valores m serão
ajustados de forma que y = mx.

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 relação y = b*m^x.

PREVISÃO(x; val_conhecidos_y; val_conhecidos_x) ou FORECAST devolve um valor previsto para x, baseado


numa regressão 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 Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 61

Val_conhecidos_x é o intervalo de dados ou matriz independente.

A função previsão é semelhante à função tendência com a diferença que serve para calcular um só valor, embora se
possa usar também esta função como fórmula matriz. Neste caso produz o mesmo resultado que a função tendência.

Exemplos:

7.3. TABELA DE DADOS OU DATA TABLE

Uma tabela de dados consiste num intervalo de dados que permite mostrar como é que determinadas alterações em
certos valores irão afectar o resultado das fórmulas. As tabelas de dados permitem calcular rapidamente várias
versões numa só operação e, visualizar e comparar os resultados de todas as variantes calculadas na mesma folha de
cálculo, ou seja, pretende analisar o impacte de uma ou mais variáveis nas fórmulas que recorrem a essas variáveis.

Para apagar uma tabela de dados temos que seleccionar toda a tabela de dados, incluindo todas as fórmulas, valores
de entrada, valores resultantes, formatos e comentários e depois Editar ⇒ Limpar ⇒ Tudo.

{=TABELA(célula de entrada da linha; célula de entrada da coluna)} ou TABLE

Se os dados tiverem em linha utiliza-se o primeiro argumento, se tiverem em coluna utiliza-se o segundo.

7.3.1. Tabela de dados baseada numa variável

Analisa o impacte de uma variável em uma ou mais fórmulas que recorrem a essa variável.

Pretende-se conhecer qual o efeito no número de vendedores e de carros que uma empresa de gelados necessita
perante um aumento do número de clientes. Sabe-se que a empresa deverá ter um vendedor para cada 50 clientes e
que deverá ter um carro para cada 75 clientes.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 62

7.3.2. Tabela de dados baseada em duas variáveis

Analisa o impacte das duas variáveis numa só fórmula que recorre a essas variáveis.

Pretende-se calcular o valor do juros (em regime de juro composto) para várias taxas de juro e para vários anos.

7.4. ATINGIR OBJECTIVO OU GOAL SEEK

O comando Atingir objectivo é utilizado quando sabemos antecipadamente qual o resultado desejado para uma dada
fórmula, mas não sabemos qual é o valor de que a fórmula necessita para atingir esse resultado, ou seja resolve
equações de uma incógnita.

Por defeito o comando Atingir objectivo pára ao fim de 100 tentativas (100 iterações) ou quando encontra um valor

a uma distância de 0.001 do valor a atingir. Estes valores defeito podem ser alterados no menu Ferramentas ⇒
Opções ⇒ Cálculo e depois Nº máximo de iterações e Alteração máxima.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 63

Exemplo:

Resolver a equação: 2y2 + 2y + 5 = 20

Pretende-se saber, em regime de juro composto, ao fim de quantos anos é que um dado capital, aplicado a uma dada
taxa anual, com capitalizações anuais, duplica.

7.5. SOLVER

O comando Solver é utilizado para maximizar ou minimizar o valor de uma célula que está dependente da variação
dos valores em várias outras células, dentro de restrições previamente definidas. Quando utilizar o Solver, as células
com que estiver a trabalhar terão que estar relacionadas através de fórmulas na folha de cálculo.

Exemplo:

Imagine que pretende comprar 100 animais com 100 escudos. Os preços unitários dos diferentes animais são aqueles
que se apresentam, de seguida:

Preço Unit.
Ovelhas 10$00
Patos 2$00
Galinhas 0$50
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 64

Vamos formular o problema da forma que se apresenta no quadro seguinte, atribuindo quantidades a cada animal,
relacionando as quantidades com o preço unitário e calculando os respectivos totais (em quantidade e dinheiro).

C D E F
3 Preço Unit. Quantidade Total
4 Ovelhas 10$00 1 10$00
5 Patos 2$00 1 2$00
6 Galinhas 0$50 1 0$50
7 Total 3 12$50

Os valores da coluna F resultam todos de fórmulas bem como os Totais. Daqui resulta que em F4 se encontra a
fórmula =D4*E4 e que em E7 se encontra a fórmula =Soma(E4:C6).

Se o solver não se encontrar disponível em Ferramentas ⇒ Solver então deve fazer Ferramentas ⇒ Suplementos e
seleccionar Suplemento Solver.

Utilizando o Solver vamos definir:

Uma última restrição que não se encontra visível refere-se a F7 que também tem que ser igual a 100.

Quando pedimos para solucionar, o Solver apresenta-nos a seguinte solução:

C D E F
3 Preço Unit. Quantidade Total
4 Ovelhas 10$00 1 10$00
5 Patos 2$00 27 54$00
6 Galinhas 0$50 72 36$00
7 Total 100 100$00

Perguntando-nos o que pretendemos fazer com o resultado.


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 65

7.6. CONSTRUÇÃO DE CENÁRIOS

Uma das possibilidades do exemplo anterior seria arrecadar a solução do problema como um cenário. Todavia, uma
vez que o problema poderia admitir vários tipos de solução, cada uma delas, poderia constituir um cenário diferente.
Para tal bastaria optar pelo botão Guardar Cenário.

Assim sendo, verificamos que a constituição de cenários pode emergir da utilização do Solver, do Goal Seek ou,
podemos criar cenários directamente através da formulação de um problema, de forma conveniente, na folha de
cálculo. Observemos o seguinte exemplo:

A avaliação final de um conjunto de alunos depende das classificações obtidas em três provas e tem uma quarta
componente correspondente a avaliação contínua (assiduidade, interesse manifestado, etc). Admitindo que a
ponderação de cada uma das quatro componentes da avaliação era igual, a nota final de cada aluno resultaria da
média aritmética simples das notas obtidas às diferentes componentes. Todavia, se alterarmos as ponderações das
provas o resultado final será diferente para cada um dos alunos ficando com melhor nota final (em termos relativos)
aqueles alunos que obtiveram melhor classificação às componentes de avaliação com maior ponderação. Assim,
pretendemos constituir cenários alternativos que conduzirão a resultados finais diferentes em função da ponderação
atribuída a cada um dos quatro momentos de avaliação.

No primeiro caso, admitindo igual ponderação, temos:

Ana Luís João Ponder.


1ª Prova 14 15 14 1ª Prova 25%
2ª Prova 12 10 12 2ª Prova 25%
3ª Prova 10 14 17 3ª Prova 25%
Av. Cont. 12 14 15 Av. Cont. 25%
Final 12,00 13,25 14,50 Total 100%
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 66

A constituição de cenários passa pela utilização das opções: Ferramentas ⇒ Cenários que nos conduz à seguinte
janela de diálogo:

Nesta janela, para começarmos a adicionar cenários, devemos pressionar o botão Adicionar que nos conduz a:
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 67

Neste quadro devemos definir o nome do cenário inicial (p. ex. Igual Ponderação) e especificar as células variáveis,
ou seja, neste exemplo as células que contêm as ponderações das provas $G$4:$G$7.

Quando pressionamos OK surge-nos a possibilidade de especificarmos os valores para cada uma das células
variáveis através do quadro seguinte:

Se pretendermos adicionar mais cenários, após a introdução de todos os valores para as células variáveis do cenário
actual devemos pressionar Adicionar que nos conduz à definição de um novo cenário e assim por diante. Por último
terminamos a definição de cenários com Ok que nos conduz a:

Agora podemos seleccionar qualquer um dos 5 cenários constituídos para vermos o seu resultado, alterar os valores
das variáveis independentes (ponderações) ou eliminar esse cenário.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 68

Podemos, ainda, utilizando a opção Sumário aceder ao quadro seguinte:

que nos permitirá constituir um Sumário do cenário como se apresenta de seguida

ou uma Tabela dinâmica do cenário que produziria


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 69

7. RELATÓRIOS DE TABELAS E GRÁFICOS DINÂMICOS

Objectivos:
! Resumir dados utilizando Tabelas dinâmicas

! Alteração de Tabelas dinâmicas em função das necessidades de informação

Resumo:

As tabelas dinâmicas são um instrumento que serve para resumir dados de uma Tabela ou Base de Dados
dando-lhes a orientação mais adequada em função dos objectivos pretendidos. Trata-se, em rigor, duma
forma verdadeiramente objectiva de transformar dados em informação.

8.1. CRIAÇÃO DE TABELAS / GRÁFICOS DINÂMICOS

As opções que temos de utilizar são Dados ⇒ Relatório de Tabelas ...

Ao acedermos a esta opção surge um auxiliar de criação (Wizard) como aquele que se apresenta, de
seguida:

Optando por criar uma Tabela Dinâmica partindo dos dados constantes na nossa Tabela em Excel
faríamos Seguinte.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 70

No segundo passo seríamos confrontados com a necessidade de definir a Tabela de Dados.

Por último, o Excel pergunta-nos se pretendemos embutir a Tabela Dinâmica na Folha actual ou se
queremos criar uma nova folha. O diálogo é o seguinte:

Se optarmos por embutir na mesma folha, apenas temos que definir o endereço do canto superior
esquerdo da Tabela Dinâmica.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 71

Nesta fase, podemos optar por concluir e, nesse caso, somos confrontados com o seguinte quadro e barra
de construção de Tabela Dinâmica:

Ou podemos optar por definir o esquema da Tabela Dinâmica antes de terminar e, neste caso,
pressionando o botão Esquema surge-nos o seguinte diálogo:
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 72

Através deste quadro podemos definir a nossa Tabela Dinâmica em função das necessidades de
informação subjacentes à mesma.

8.2. ALTERAÇÃO DE UMA TABELA / GRÁFICO DINÂMICO

Para procedermos à alteração de uma Tabela Dinâmica basta-nos aceder à Tabela Dinâmica
seleccionando-a e de seguida, actuar sobre as opções da barra de ferramentas correspondente.
Caso esta barra não se encontre imediatamente visível é sempre possível evocá-la através das
opções Ver ⇒ Barras de Ferramentas ⇒ Tabelas Dinâmicas.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 73

8. VBA
9.1. O QUE É UMA FUNÇÃO

Funções são rotinas que têm como objectivo executar um conjunto de instruções e produzir um
valor final. São definidas por:

• um nome elucidativo da sua função,

• parâmetros - valores enviados entre parêntesis e que constituem o input ( a matéria–prima) da função, i.e., é
sobre eles que serão executados os respectivos cálculos. Existem funções que não necessitam de
parâmetros – Rand(), Today(), Pi()),

• resultado ou output – valor produzido pela aplicação da função aos parâmetros.

Recorde-se como exemplo a função SUM , esta recebe por parâmetro um conjunto de valores
que se pretendem somar, sabe-se que o resultado da aplicação dessa função ao conjunto de
valores será o respectivo somatório.

9.2. FUNÇÕES DO EXCEL

O Excel dispõe de um conjunto variado de funções (de estatística, de data e hora, de matemática
e trigonometria, de finanças, de pesquisa e referência, de bases de dados, de texto, de lógica, e de
informação) pré-programadas que se podem utilizar nas células da worksheet para executar os
mais diversos cálculos.

Contudo, existem funções que o Excel não contempla e que por vezes os utilizadores gostariam
de aplicar para a realização dos seus cálculos usuais. Neste contexto, está previsto o
desenvolvimento de funções personalizadas recorrendo a uma codificação das mesmas numa
linguagem que o computador possa entender e executar - Visual Basic for Applications (VBA).

9.3. COMO CRIAR FUNÇÕES

1. Defina o objectivo da função, os parâmetros e resultado


2. Escreva (em linguagem normal) os passos que essa função deve executar para, com base nos parâmetros
produzir o valor final. Nesta etapa está a definir o algoritmo.

3. Traduza o seu algoritmo em VBA. Para escrever uma função em VBA deve obedecer à seguinte sintaxe:
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 74

Function <Nome da Função> ( <parametro1>, <parametro2>,…)

<Nome da Função> = <Valor ou Expressão>

End Function

A definição começa com a palavra-chave Function e termina com as palavras End


Function. Para definir o valor produzido pela uma função basta no seu interior,
atribuir ao nome da função um determinado valor ou expressão.

Aplicações Práticas

Problema: Fazer uma função que calcule o valor com IVA.

1. Parâmetros / Input: Valor Ilíquido e Taxa de IVA


2. Passos a executar:

1. Multiplicar o Valor Ilíquido pela Taxa de IVA

2. Somar ao Valor Ilíquido o valor calculado no passo anterior. Assim o valor do


IVA deve ser atribuído a uma variável, no passo 2.1, para utilização posterior.

3. Em VBA:

Problema: Fazer uma função que gere valores aleatórios num intervalo real definido por dois
limites

1. Parâmetros / Input: Limite Inferior e Limite Superior


2. Passos a executar:

1. Utilizar a função Rnd para produzir números aleatórios (entre 0 e 1)


2. Somar o Limite Inferior com o resultado da alínea anterior multiplicado pela diferença entre o
Limite Superior e o Limite Inferior
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 75

3. Em VBA:

9.4. ONDE DEFINIR A FUNÇÃO

A função tem de ser definida (escrita) em linguagem VBA num sitio apropriado -Editor de
Visual Basic for Applications. Para aceder ao editor escolha a seguinte sequência de opções do
menu: Tools / Macro / Visual Basic Editor

Project Explorer

Se a janela não estiver visível active-a através do View / Project Explorer ou utilizando o botão ou
combinações de letras associadas a esta tarefa.

Nesta janela poderá visualizar a hierarquia dos projectos de Visual Basic for Applications activos
nesse momento.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 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 necessário.

Assim se fizer o desdobramento do seu VBAProject, encontrará um folder cuja designação é


Microsoft Excel Objects, e um outro designado Modules (se este não aparecer significa que o seu
projecto ainda não possui qualquer função implementada. Para criar este folder deverá fazer:
Insert / Module).

Certifique-se, antes de começar a criar a função, que o está a fazer dentro dos modules, caso
contrário elas não funcionarão como pretende.

9.5. TRABALHAR NO EDITOR DE VBA – CRIAR UMA FUNÇÃO

Aplicação Prática

Problema: Criar uma função que calcule o IVA

1. Parâmetros / Input: Valor Ilíquido e Taxa de IVA


2. Passos a executar:

1. Multiplicar o Valor Ilíquido pela Taxa de IVA


3. Para criar a função no Editor de VBA:

Uma vez seleccionado o módulo onde pretende construir a função poderá:

• Escrever a função integralmente, ou

• Recorrer ao Insert / Procedure para que o VBA lhe crie a estrutura


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 77

Nesta caixa de diálogo deverá indicar o tipo de rotina a criar – Function e o nome que
pretende dar à função. Automaticamente o Visual Basic for Applications criará a
estrutura da rotina, que neste caso ficaria:

Function IVA( )

End Function

Depois bastará escrever a expressão que produzirá o valor final, entre estas duas linhas de
código, como mostra a figura seguinte

9.6. EXECUÇÃO DE UMA FUNÇÃO DENTRO DE UMA CÉLULA

Uma vez que uma função produz um valor ela poderá ser executada dentro de uma célula numa
WorkSheet, à semelhança de qualquer uma outra função do Excel

1. Posicione-se na célula onde pretende inserir a função

2. Insert / Function

3. Seleccione a categoria User Defined – repare que aparece listada a função que acabou de criar IVA

4. Clique em OK e de imediato uma janela de ajuda virá auxiliar a utilização da sua função
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 78

5. Introduza os parâmetros e clique em OK

Em suma:
Qualquer função poderá ser utilizada numa WorkSheet do Excel, sendo a sua utilização
semelhante a qualquer outra função: numa célula

= <nome da função> (<Param_1> , <Param_2>)

9.7. UTILIZAÇÃO DE VARIÁVEIS

As variáveis constituem repositórios temporários de valores, podendo ser utilizadas para diversos
fins.Quando se pretende atribuir valores a variáveis dever-se-á indicar o nome da variável, o
operador "=" e o valor que se pretende que a variável armazene.

<Nome_Variável> = <Valor>

O nome da variável representa o conteúdo da mesma, i.e., sempre que mencionar o nome da
variável é o seu conteúdo que será considerado.

9.7.1. Tipos de variáveis

O tipo de variável está associado ao género de informação que esta tem hipótese de armazenar:

Boolean – 2 bytes – Permite armazenar valores Boolenaos – True ou False

Byte – 1 Byte – permite armazenar números sem sinal entre 0 e 255

Currency - 8 bytes – permite armazenar moeda

Date – 8 Bytes – permite armazenar datas


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 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 números inteiros entre -32.768 e 32767

Long – 4 bytes – permite armazenar números inteiros entre -2 147 483 648 e 2 147 483 648

Object – 4 bytes – utilizado para fazer referência 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

9.7.2. Declaração de Variáveis

As variáveis que utilizar dentro de uma função deverão por norma ser declaradas i.e. definidas,
sempre que uma variável for utilizada sem ser definida o VBA considera-a do tipo Variant. A
definição é feita da seguinte forma:

Dim Numero As Integer

Onde:

Dim – Palavra chave que indica uma declaração de variáveis (abreviatura de dimensão)

Numero - nome da variável a utilizar

As – palavra chave utilizada para separar o nome da variável do tipo de dados

Integer – tipo de dados atribuído à variável


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 80

9.8. ESTRUTURAS DE CONTROLO

O VBA disponibiliza algumas estruturas que pode utilizar para controlar o decurso da execução
da rotina. Estas estruturas dão ao programador um poder enorme para construir funções bastante
complexas e flexíveis.

VBA Control Objectivo

If -Then - Else Testa uma condição e executa um determinado conjunto de


instruções consoante o resultado dessa avaliação

For – Next Executa uma determinada tarefa um determinado número de


vezes.

While-Wend Executa uma determinada tarefa enquanto que uma determinada


condição permaneça verdadeira, i.e., com o valor True.

Do – Loop Executa uma determinada tarefa enquanto que a avaliação de


uma condição permaneça True ou então até que seja True.

Select - Case Selecciona um dos segmentos de código a processar mediante a


avaliação consecutiva de condições.

For – Each – Next Realiza uma determinada tarefa repetitiva em cada objecto de
uma colecção ou em cada item de um array.

9.8.1. If-Then-Else

Recorrendo à função IF do Excel, recorde:

=IF( <condição>, <se condição verdadeira>, <se condição falsa> )

A função IF tinha o seguinte comportamento:

1. Avalia a condição, que deverá ser uma expressão booleana colocada como
primeiro parâmetro;
2. Se a condição for verdadeira, então (then) realiza as operações colocadas no segundo parâmetro;

3. Caso contrário (else), realiza as operações que formam o terceiro parâmetro


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 81

A estrutura IF do VBA tem o mesmo tipo de funcionamento, o que difere é a sintaxe.

Assim:

If <Condição> Then

<se condição verdadeira>

[ Else

<se condição falsa> ]

End If

A palavra Else é opcional sendo que no caso de ser omitida, a avaliação negativa da condição
implica uma saída automática da Instrução If.

Aplicação Prática

Problema: Determinar se um número é par

1. Elementos de análise

1. Nome: É_Par
2. Parâmetros: número que vai ser avaliado

3. Output: True se for par, e False caso contrário

2. Passos a executar:

1. Dividir o número por dois e apurar o resto da divisão


2. Avaliar o resto da divisão:

1. Se for igual a zero, então o número é par e a função assume o valor True
2. Senão, o valor é impar e a função assume o valor False

3. Em VBA:
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 82

Interpretação

Dim resto As Double Declaração da variável resto, onde é guardado o resto da divisão do número por dois

Resto = Numero Mod 2 Mod é uma função que calcula o resto da divisão do Numero por 2 (neste caso). O
valor calculado é atribuído à variável resto.

If Palavra chave que indica o inicio de uma instrução If-Then-Else

Resto = 0 A condição a testar. Serve para determinar a sequência a dar à execução da rotina. Da
avaliação desta condição pode-se obter um de dois valores True ou False, sendo que
depende deste resultado o caminho a prosseguir. Se for True executará as instruções
que seguirem a palavra-chave Then até encontrar a palavra chave Else, não
executando mais nada dentro do IF, caso contrário executará o código que se seguir à
palavra chave Else até ao End If.

Then Palavra chave que determina o fim da condição teste. Todas as instruções que têm
inicio nesta palavra-chave até à palavra-chave Else serão executadas se a condição for
verdadeira.

É_Par = True Instrução a executar se a condição for verdadeira.

Else Palavra-chave que determina o terminus de execução das instruções quando o


resultado da avaliação for True, e que determina o inicio das instruções a executar se o
resultado da condição for False.

É_Par = False Instrução a executar se a condição for falsa.

End If Palavra-chave que indica o fim do controlo de If-Then-Else e como tal onde se deve
retomar as instruções para prosseguir a execução do procedimento.

Aplicação Prática

Problema: Crie a função Mod para usar nas células do Excel.

1. Elementos de análise

1. Nome: Resto_Divisão
2. Parâmetros: Dividendo e Divisor

3. Output: resto da divisão do Dividendo pelo Divisor

2. Passos a executar:

1. Calcular o quociente da divisão (Dividendo / Divisor) na forma inteira


2. Subtrair ao dividendo a multiplicação do quociente pelo Divisor, obtendo assim o resto
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 83

3. Em VBA:

A instrução adicional ElseIf

Esta instrução propõe uma condição alternativa se o teste da condição anterior tiver tido
um resultado negativo.

Aplicação Prática

Problema: Pretende-se criar uma função que classifique etariamente um indivíduo em


função da sua idade. A classificação pretendida é a seguinte:

Idade Classe Etária

Menos de 3 anos Bebé

Dos 3 aos 12 Criança

Dos 13 aos 19 Adolescente

Dos 20 aos 25 Jovem

Dos 26 aos 65 Adulto

Mais de 65 Idoso

3. Elementos de análise

1. Nome: Classe_Etária
2. Parâmetros: Idade

3. Output: "Bebé", "Criança", "Adolescente", "Jovem", "Adulto" ou "Idoso"

4. Passos a executar:

1. Avaliar a idade
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 84

1. Se tiver menos de três, então é "Bebé"


2. Senão, se tiver menos de treze, então é "Criança"

3. Senão, se tiver menos de vinte, então é "Adolescente"

4. Senão, se tiver menos de vinte e seis, então é "Jovem"

5. Senão, se tiver menos de sessenta e seis, então é "Adulto"

6. Senão é "Idoso"

7. Em VBA:

Este tipo de codificação pode tornar-se confuso e difícil de controlar, como tal o VBA
proporciona uma estrutura mais simples para este tipo de situações: Select Case.

9.8.2. Select Case

Permite a escolha de um percurso mediante a avaliação de n condições. É de extrema utilidade


para evitar os If’s encadeados, dando um maior grau de legibilidade e simplicidade ao código
construído.

Select Case <Expressão a ser avaliada>

[Case <Valor da Expressão> [Instruções a realizar]]

...[Case Else [Instruções a realizar na situação residual]]

End Select
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 85

Aplicação Prática

Problema: Alterar a estrutura da função Classe_Etária mediante a aplicação do Select Case.

Construção da Estrutura

Select Case Palavras-Chave que indicam o inicio de um controlo Select Case

Idade Expressão sujeita a teste, i.e., variável cujo conteúdo está a ser avaliado. Esta variável vai ser
comparada sucessivamente pelos valores alternativos apresentados nas instruções Case <Valor>,
se encontrar o valor nalguma dessas opções Case executará as linhas de código que aí terão inicio
até à opção de Case seguinte. Caso o valor da variável a ser comparada não corresponda a
nenhum valor apresentado nas opções Case, existe uma opção Case especial - Case Select - para
os restantes valores, neste caso serão executadas todas as instruções que se localizem entre o
Case Else e o Case Select.

Case Is<3 ou Expressões Case. Se o valor da variável for igual a qualquer um dos valores apresentados em
cada uma destas expressões, o fluxo de execução terá continuidade na linha abaixo da expressão
Case Is<13 ou
case que faz o matching, até que uma nova expressão case seja encontrada. Sendo que nessa
Case Is<20 ou
altura termina o controlo Select Case dando continuidade ao programa nas instruções que se
Case Is<26 ou seguirem ao End Select.

Case Is<66

Case Else Será a instrução Case residual, seleccionada somente se nenhuma das outras o tiver sido. Neste
caso serão realizadas todas as instruções de código que se lhe seguirem até à expressão End
Select. Findo o qual seguirá todas as instruções após o controlo Select case.

End Select Palavra-Chave que indica o fim do controlo Select Case.


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 86

9.8.3. For – Next

Permite a execução repetida de uma tarefa durante um determinado número de vezes.

For <Inicialização do Contador> To <Valor > [ Step <Valor a Incrementar>]

<Instruções a realizar em cada iteração>

Next

Aplicação Prática

Problema: Pretende-se criar uma função que recebendo a base e a potência calcule o valor
respectivo.

1. Elementos de análise

1. Nome: Calc_Potência
2. Parâmetros: Base, Potência

3. Output: Base elevada à potência

2. Passos a executar:

1. Multiplicar sucessivas vezes (número indicado pela potência) a base pelo


resultado acumulado das sucessivas operações.

2. Em VBA:
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 87

Função das Variáveis:

Variável Função

i Conta o número de vezes que a base já foi multiplicada, é uma variável que será automaticamente
incrementada em cada looping do ciclo.

acumulado Variável que armazena o resultado sucessivo por cada vez que se multiplica. Inicializado a 1 (elemento
neutro da multiplicação) antes do ciclo.

Construção do Ciclo:

For Palavra-chave que indica o inicio do ciclo For-Next

i = 1 To Potência Expressão que contém a inicialização do contador, indicando o valor de inicio e de fim.
Assim, o número 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. (Tradução: O contador iniciar-se-á a um e atingirá o valor máximo
traduzido pela variável Potência)

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 números
decimais, a números negativos (Provocando assim a decrementação). A palavra-chave
Step é opcional, sempre que for omitida é assumido 1 como o valor a incrementar por
defeito.

acumulado = acumulado Instrução a realizar de cada vez que o ciclo for executado. Neste caso a instrução é única,
* Base contudo poder-se-ão adicionar outras instruções.

Next Palavra Chave que indica o fim de um ciclo For-Next . Sempre que a execução do ciclo
chega à instrução Next incrementa a variável contador e volta ao inicio do ciclo.

Tradução Integral:

For i = 1 To Potência Step 1

acumulado =acumulado * Base

Next

Para o número de vezes, a iniciar em 1 até que atinja, o valor Potência, pela incrementação de 1
na execução de cada ciclo, deverá multiplicar sucessivamente o resultado acumulado, pela base.
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 88

Funcionamento do Ciclo:

A primeira execução do ciclo distingue-se das restantes por a ela estar associada a inicialização do
contador, sendo o restante procedimento semelhante a qualquer outra execução.

No inicio de cada execução do ciclo, a variável contador é comparada com o valor final de
execução. 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 número de vezes pretendido, e então o código
acabará a execução da instrução For-Next e seguirá na linha de código que esteja situada
imediatamente a seguir, caso contrário executa uma vez mais o ciclo e incrementa a variável
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 número de vezes pretendido, e então
o código acabará a execução da instrução For-Next e seguirá na linha de código que esteja
situada imediatamente a seguir, caso contrário executa uma vez mais o ciclo e decrementa a
variável contador.

Perigos associados à utilização do ciclo For-Next:

• Não definir o limite de execução (não atribuir valor à variável que o define)

• Definir erroneamente o Step, por forma a que nunca seja obtido o valor que determina o fim da execução

• estas condições implicarão que o ciclo não tenha fim – Ciclos Infinitos

Aplicação Prática

Problema: Pretende-se criar uma função para calcular um factorial.

1. Elementos de análise

1. Nome: Factorial
2. Parâmetros: Número

3. Output: Factorial do Número introduzido

2. Passos a executar:

1. Verificar se o número é positivo


2. Se for, multiplicar sucessivas vezes um número pelo resultado acumulado das sucessivas
multiplicações dos números inteiros que o antecedem

3. Senão indicar "ERRO"


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 89

4. Em VBA:

9.8.4. While – Wend

A estrutura While-Wend tem um funcionamento similar ao For-Next. Realiza um looping um


determinado número de vezes, enquanto que uma determinada condição permaneça verdadeira.
A diferença entre este ciclo e o ciclo For-Next é basicamente o facto deste saber apriori o
número de vezes que vai ser realizado, enquanto que um ciclo While-Wend poderá ou não sabê-
lo pois terminará quando a condição for Falsa.

While <Condição>

<Instruções a realizar em cada iteração>

Wend

Aplicações Práticas

Problema: Modificar a estrutura da função Factorial, criada com o ciclo For-Next

(Neste caso o ciclo sabe apriori o número de vezes que irá ser realizado)

1. Elementos de análise

1. Nome: Factor
2. Parâmetros: Número

3. Output: Factorial do Número introduzido

2. Passos a executar:
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 90

1. Verificar se o número é positivo


2. Se for, multiplicar sucessivas vezes um número pelo resultado acumulado das sucessivas
multiplicações dos números inteiros que o antecedem

3. Senão indicar "ERRO"

4. Em VBA:

Problema: Apostar um número entre 1 e 10 e saber ao fim de quantos lançamentos (gerações


aleatórias) é que foi seleccionado.

(Neste caso o ciclo não sabe o número de vezes que irá ser realizado)

1. Elementos de análise

1. Nome: Aposta_1a10
2. Parâmetros: Número

3. Output: Número de lançamentos

2. Passos a executar:

1. Verificar se o número está no intervalo definido


2. Se estiver, gerar continuamente números aleatórios entre 1 e 10 e comparar com o Número da
aposta, quando for igual pára e indica o número de lançamentos

3. Senão estiver no intervalo indicar "ERRO DE INSERÇÃO"


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 91

4. Em VBA:

A instrução While-Wend tem como função gerar números aleatórios entre 1 e 10 por forma a
encontrar o número da aposta, e saber qual o número de lançamentos necessários para que aquele
valor fosse obtido.

A Função das Variáveis

Variável Função

Lançamento Guarda o valor obtido em cada um dos lançamentos.

i Número de lançamentos realizados até obter o resultado da aposta. Este valor tem de ser incrementado
cada vez que é realizado um sorteio.

Construção do Ciclo

While Palavra-chave que indica o inicio do ciclo While-Wend

Número<>Lançamento Condição teste utilizada para determinar o terminus da realização do


ciclo. Se esta condição for Verdadeira executa as instruções que
estão dentro do While-Wend, se for Falsa a execução do ciclo é
terminada tendo o programa sequência nas instruções que seguem a
palavra chave Wend.

Lançamento = Int(1 + Rnd() * (10 - 1 + 1)) Instrução a realizar de cada vez que o ciclo é executado. Tem como
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 92

função gerar números aleatórios inteiros entre 1 e 10. Repare que


este valor é inicializado antes do inicio do ciclo por forma a garantir
uma comparação correcta na condição.

Em vez de realizar esta expressão poderia utilizar a função


Gera_Entre.

i=i+1 Instrução a realizar de cada vez que o ciclo é executado. Tem como
função fazer a contagem de quantos lançamentos 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.

Tradução Integral

While Número <> Lançamento

Lançamento = Int(1 + Rnd() * (10 - 1 + 1))

i=i+1

Wend

Enquanto o número do lançamento não for igual ao número da aposta, o sorteio continua, o que
implica sortear um número e contabilizar o número de sorteios realizados.

Se utilizasse a função Gera_Entre para a geração de números aleatórios, a função seria:


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 93

Funcionamento do Ciclo

Existe uma fase de inicialização das variáveis envolvidas na condição – teste para garantir o
correcto funcionamento do ciclo.

Avalia a condição teste e se for verdadeira executa todas as instruções até à palavra-chave Wend
voltando de novo à avaliação da condição, se for falsa prossegue a execução da rotina nas
instruções que se localizam depois da palavra-chave Wend.

Perigos associados à utilização do ciclo While-Wend

• Má ou inexistência de inicialização das variáveis envolvidas na condição-teste.

• Garantir que as variáveis envolvidas na condição teste poderão ter valores diferentes por cada vez que o
ciclo seja executado.

• Garantir que em algum momento a condição teste é falsa e o ciclo termina a sua execução.

• A não verificação destas condições implicará que o ciclo não tenha fim – Ciclos Infinitos

9.8.5. Do – Loop

Esta estrutura é similar à estrutura do While-Wend. Contudo fornece duas possibilidades que
estão limitadas àquela estrutura:

• Do Loop permite posicionar a condição teste no inicio ou fim do loop, a condição no fim do
Loop evita uma inicialização prévia do valor das variáveis envolvidas na condição teste,
dado que essa inicialização pode ser feita no decurso do ciclo com valores reais.

• Do Loop permite ainda especificar se o loop se vai realizar enquanto (while) uma
expressão for verdadeira ou até que (until) a condição ser verdadeira (facilidade
conseguida através do operador Not)
Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 94

Poderá ser:

Do [{While ⇒ Until} <condição>]

<Instruções a realizar por iteração>

Loop

Ou então:

Do

<Instruções a realizar por iteração>

Loop[{While ⇒ Until} <condição>]

Aplicações Práticas

Problema: Apostar um número num intervalo definido e saber ao fim de quantos lançamentos
(gerações aleatórias dentro do intervalo considerado) é que foi seleccionado.

1. Elementos de análise

1. Nome: Aposta
2. Parâmetros: Número, Limite Inferior e Limite Superior

3. Output: Número de lançamentos necessário realizar para que o número apostado fosse
seleccionado no intervalo de números definido pelo Limite Inferior e Superior

2. Passos a executar:

1. Verificar se o número 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 números aleatórios nesse intervalo e comparar com o Número da
aposta, quando for igual pára e indica o número de lançamentos

3. Senão estiver no intervalo indicar "ERRO DE INSERÇÃO"


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 95

3. Em VBA:

Aplicações Práticas

1. Utilizando a condição teste no inicio do Loop e com a palavra While


Universidade Católica Portuguesa
Centro Regional das Beiras - Pólo de Viseu 96

2. Utilizando a condição teste no inicio do Loop e com a palavra Until

3. Utilizando a condição teste no fim do Loop e com a palavra Until

4. Utilizando a condição teste no fim do Loop e com a palavra While

Você também pode gostar