Folha de Cálculo 2
Pedro Barahona
DI/FCT/UNL
Introdução aos Computadores e à Programação
2º Semestre 2006/2007
25 de Maio de 2007
Folha de Cálculo
1
Folha de Cálculo
• As possibilidades de acesso e tratamento avançado de
informação numa folha de cálculo serão ilustradas através de
alguns exemplos.
– Ordenação de Registos
– Agregações (médias, médias ponderadas, extremos)
– Contagens e contagens condicionais
– Determinação da ordem
– Descoberta de um valor numa tabela
– Selecção de valor numa tabela através da sua linha e coluna
25 de Maio de 2007
Folha de Cálculo
2
Ordenação de Registos
• Começamos por considerar a apresentação ordenada de um
conjunto de registos, dispostos em várias linhas.
• No EXCEL tal pode ser facilmente obtido através da
operação “sort” na entrada “data” do menu.
• Nesta ordenação podem ser seleccionados
– os “campos” por onde se faz a ordenação,
– A sua prioriades (um campo só é utilizado em caso de
empate nos campos mais prioritários),
– a ordem (crescente ou decrescente) utilizada, e
25 de Maio de 2007
Folha de Cálculo
3
Ordenação de Registos
• Dada a pauta da turma abaixo
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
nota 1
16.1
17.3
9.9
8.3
19.8
11.1
9.2
10.7
10.7
nota 2
18.8
17.6
8.6
15.7
13.6
10.2
7.3
15.4
18.2
nota 3
9.3
15.9
12.2
15.6
19.7
8.9
18.3
16.8
12.9
ela pode, por exemplo, ser ordenada
– Por ordem crescente dos números ou nomes dos alunos;
– Por ordem decrescente das suas notas (1, 2 ou 3)
25 de Maio de 2007
Folha de Cálculo
4
Ordenação de Registos
• Por ordem crescente dos números dos alunos
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
nota 1
16.1
17.3
9.9
8.3
19.8
11.1
9.2
10.7
10.7
nota 2
18.8
17.6
8.6
15.7
13.6
10.2
7.3
15.4
18.2
nota 3
9.3
15.9
12.2
15.6
19.7
8.9
18.3
16.8
12.9
• Seleccionar a tabela
• Menu: Data - Sort
• Opções: num, ascending
25 de Maio de 2007
num
18849
18937
19686
19874
20179
20447
20685
20744
20765
Folha de Cálculo
nome
marta
ricardo
joão
vera
mário
madalena
maria
luís
pedro
nota 1
9.2
17.3
10.7
11.1
8.3
19.8
16.1
9.9
10.7
nota 2
7.3
17.6
18.2
10.2
15.7
13.6
18.8
8.6
15.4
nota 3
18.3
15.9
12.9
8.9
15.6
19.7
9.3
12.2
16.8
5
Ordenação de Registos
• Por ordem decrescente dos nomes dos alunos (notar o
correcto tratamento dos acentos)
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
nota 1
16.1
17.3
9.9
8.3
19.8
11.1
9.2
10.7
10.7
nota 2
18.8
17.6
8.6
15.7
13.6
10.2
7.3
15.4
18.2
nota 3
9.3
15.9
12.2
15.6
19.7
8.9
18.3
16.8
12.9
• Seleccionar a tabela
• Menu: Data - Sort
• Opções: nome, descending
25 de Maio de 2007
num
19874
18937
20765
18849
20179
20685
20447
20744
19686
Folha de Cálculo
nome
vera
ricardo
pedro
marta
mário
maria
madalena
luís
joão
nota 1
11.1
17.3
10.7
9.2
8.3
16.1
19.8
9.9
10.7
nota 2
10.2
17.6
15.4
7.3
15.7
18.8
13.6
8.6
18.2
nota 3
8.9
15.9
16.8
18.3
15.6
9.3
19.7
12.2
12.9
6
Ordenação de Registos
• Por ordem decrescente da nota 3
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
nota 1
16.1
17.3
9.9
8.3
19.8
11.1
9.2
10.7
10.7
nota 2
18.8
17.6
8.6
15.7
13.6
10.2
7.3
15.4
18.2
nota 3
9.3
15.9
12.2
15.6
19.7
8.9
18.3
16.8
12.9
• Seleccionar a tabela
• Menu: Data - Sort (menu)
• Opções: nota 3, descending
25 de Maio de 2007
num
20447
18849
20765
18937
20179
19686
20744
20685
19874
Folha de Cálculo
nome
madalena
marta
pedro
ricardo
mário
joão
luís
maria
vera
nota 1
19.8
9.2
10.7
17.3
8.3
10.7
9.9
16.1
11.1
nota 2
13.6
7.3
15.4
17.6
15.7
18.2
8.6
18.8
10.2
nota 3
19.7
18.3
16.8
15.9
15.6
12.9
12.2
9.3
8.9
7
Agregações (Médias, Somas)
• A determinação de agregações de dados é feita através da
utilização das operações apropriadas em células adicionais.
• Por exemplo para determinar a médias das notas de uma
aluno, pode utilizar-se a sua soma dividida por 3.
• Mais genericamente podem utilizar-se as funções predefinidas
sum e count, ou mais directamente a função average.
1
2
3
4
B
num
20685
18937
C
nome
maria
ricardo
D
nota 1
16.1
17.3
E
nota 2
18.8
17.6
F
nota 3
9.3
15.9
= sum(D3:D5) / count(D3:D5)
25 de Maio de 2007
Folha de Cálculo
G
média
14.73
16.93
= (D3+D4+D5)/3
= average(D3:D5)
8
Agregações (Médias, Somas)
• As várias médias (por disciplinas e por alunos) podem ser
acrescentadas à folha inicial
1
2
3
4
5
6
7
8
9
10
11
B
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
C
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
média
D
nota 1
16.1
17.3
9.9
8.3
19.8
11.1
9.2
10.7
10.7
12.6
E
nota 2
18.8
17.6
8.6
15.7
13.6
10.2
7.3
15.4
18.2
13.9
F
nota 3
9.3
15.9
12.2
15.6
19.7
8.9
18.3
16.8
12.9
14.4
G
média
14.73
16.93
10.23
13.20
17.70
10.07
11.60
14.30
13.93
o que permite eventualmente a posterior apresentação
ordenada por médias dos alunos
25 de Maio de 2007
Folha de Cálculo
9
Agregações (Extremos)
• Outras funções de agregação podem ser usadas para
determinar por exemplo os máximos e mínimos
1
2
3
4
5
6
7
8
9
10
11
B
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
C
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
máximo
D
nota 1
16.1
17.3
9.9
8.3
19.8
11.1
9.2
10.7
10.7
19.8
E
nota 2
18.8
17.6
8.6
15.7
13.6
10.2
7.3
15.4
18.2
18.8
F
nota 3
9.3
15.9
12.2
15.6
19.7
8.9
18.3
16.8
12.9
19.7
G
mínimo
9.30
15.90
8.60
8.30
13.60
8.90
7.30
10.70
10.70
= min(D6:F6)
= max(D3:D11)
25 de Maio de 2007
Folha de Cálculo
10
Agregações (Médias Ponderadas)
• A média ponderada de n valores vi,
cada um com peso pi, é obtida através
da fórmula
1
2
3
4
5
6
7
B
pesos
valor
C
D
E
1
3
8
15
2
2
1
10
3
1
1
5
n
mp 
p
i
i 1
 vi
n
p
i 1
i
F
média
ponderada
8.33
11.67
13.50
10.00
• Em EXCEL tal pode ser implementado pelas fórmulas
= { SUM(C5:E5*C$7:E$7)/SUM(C5:E5) }
Nota: Array expression
CTRL-SHIFT-ENTER
= sumproduct(C5:E5*C$7:E$7)/SUM(C5:E5)
25 de Maio de 2007
Folha de Cálculo
11
Agregações (Médias Ponderadas)
• Eis o exemplo anterior com médias e médias ponderadas. De
notar o endereçamento absoluto na linha dos pesos.
1
2
3
4
5
6
7
8
9
10
11
12
B
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
C
peso
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
D
5
nota 1
16.1
17.3
9.9
8.3
19.8
11.1
9.2
10.7
10.7
E
1
nota 2
18.8
17.6
8.6
15.7
13.6
10.2
7.3
15.4
18.2
F
2
nota 3
9.3
15.9
12.2
15.6
19.7
8.9
18.3
16.8
12.9
G
média
14.73
16.93
10.23
13.20
17.70
10.07
11.60
14.30
13.93
H
média
ponderada
14.74
16.99
10.31
11.05
19.00
10.44
11.24
12.81
12.19
= {sum(D9:F9*D$2:F$2)/sum(D$2:F$2)}
= sumproduct(D9:F9,D$2:F$2)/sum(D$2:F$2)
25 de Maio de 2007
Folha de Cálculo
12
Arredondamentos
• Tal como em OCTAVE, o Excel considera todos os dados numéricos
como reais. No entanto eles podem ser convertidos em inteiros (operações,
floor, ceiling e round), ou simplesmente mostrados com a precisão
desejada (não alterando o seu valor)...
1
2
3
4
5
6
7
8
9
10
11
12
B
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
C
peso
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
D
5
nota 1
16.1
17.3
9.9
8.3
19.8
11.1
9.2
10.7
10.7
E
1
nota 2
18.8
17.6
8.6
15.7
13.6
10.2
7.3
15.4
18.2
F
2
nota 3
9.3
15.9
12.2
15.6
19.7
8.9
18.3
16.8
12.9
Format: cells: number: decimal places: 0
25 de Maio de 2007
Folha de Cálculo
G
média
14.73
16.93
10.23
13.20
17.70
10
12
14
14
H
média
arredondada
15.00
17.00
10.00
13.00
18.00
10
12
14
14
= round(B6)
13
Contagens
• Outras operações de agregação´muito utilizadas são operações
de contagem, especialmente as condicionais. Para tal poderão
ser utilizadas as funções prédefinidas sum / sumif ou, mais
directamente, count / countif.
1
2
3
4
5
6
7
8
9
10
11
12
H
média
arredondada
15
17
10
13
18
10
12
14
14
I
valor
10
11
12
13
14
15
16
17
18
= sumif(int(H$4:H$12= J11))
25 de Maio de 2007
J
K
L
frequência
2
0
1
1
2
1
0
1
1
= countif(H$4:H$12,J4)
Folha de Cálculo
14
Contagens
• As comparações podem ser feitas não apenas para valores
iguais, mas também para valores que satisfaçam uma certa
condição.
1
2
3
4
5
6
7
8
9
10
11
12
H
média
arredondada
15
17
10
13
18
10
12
14
14
Ou com a operação
sobre vectores
25 de Maio de 2007
I
J
K
valores maiores
do que 12
6
= countif(H$4:H$12,”>12”)
= { sum(int(H$4:H$12>12)) }
Folha de Cálculo
15
Parametrização com texto
• Para parametrizar os campos de texto, podem ser usadas
operações sobre strings, nomeadamente a concatenação.
1
2
3
4
5
6
7
8
9
10
11
12
H
média
arredondada
15
17
10
13
18
10
12
14
14
I
J
maiores
do que
10
11
12
13
14
15
16
17
18
K
L
>
7
7
6
5
3
2
2
1
0
= countif(H$4:H$12,concatenate(">",J4))
ou
= countif(H$4:H$12,concatenate(K$3,J4))
25 de Maio de 2007
Folha de Cálculo
16
Parametrização com texto
• Para expressar critérios de selecção mais complexos podem
utilizar-se expressões booleanas ou a sua conversão em
expressões numéricas (em Excel,as operações booleanas não
são muito “fiáveis”).
= { sum(int(H4:H12 >= J3) * int(H4:H12 <= L3)) }
1
2
3
4
5
6
7
8
9
10
11
12
H
média
arredondada
15
17
10
13
18
10
12
14
14
= { sum(int(H4:H12 <
25 de Maio de 2007
I
J
K
L
valores dentro do intervalo
12
...
15
5
valores fora do intervalo
12
...
15
4
J9) + int(H4:H12 >
Folha de Cálculo
L9)) }
17
Classificações
• A classificação (“ranking”) de valores num vector/matriz é
igualmente uma operação frequente e que pode ser obtida por
contagens condicionais, ou directamente pela função rank.
1
2
3
4
5
6
7
8
9
10
11
12
B
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
C
peso
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
D
5
nota 1
16.1
17.3
9.9
8.3
19.8
11.1
9.2
10.7
10.7
E
1
nota 2
18.8
17.6
8.6
15.7
13.6
10.2
7.3
15.4
18.2
= {sum(int(G$4:G$12 >= G6))}
25 de Maio de 2007
Folha de Cálculo
F
2
nota 3
9.3
15.9
12.2
15.6
19.7
8.9
18.3
16.8
12.9
G
H
média
classificação
14.73
16.93
10.23
13.20
17.70
10.07
11.60
14.30
13.93
3
2
8
6
1
9
7
4
5
= rank(G8,G$4:G$12 )
18
Procura de valores em tabelas
• A instrução vlookup permite que dado um valor de referência,
se seleccione um valor numa tabela, na linha começada por
esse valor, e colocado na coluna especificada. Por exemplo,
dado o número de um aluno, pode obter-se o seu nome
1
2
3
4
5
6
7
8
9
10
11
12
B
C
D
E
F
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
nota 1
16.1
17.3
9.9
8.3
19.8
11.1
9.2
10.7
10.7
nota 2
18.8
17.6
8.6
15.7
13.6
10.2
7.3
15.4
18.2
nota 3
9.3
15.9
12.2
15.6
19.7
8.9
18.3
16.8
12.9
G
H
classificação
número
18937
nome
ricardo
= vlookup(H5,B4:F12,2,false)
25 de Maio de 2007
Folha de Cálculo
19
Procura de valores em tabelas
• De notar que a tabela tem de ter o valor de referência na
coluna mais à esquerda. Por exemplo, se pretendermos obter
os nomes dos primeiros 5 alunos, temos de colocar a coluna
de classificação à esquerda da tabela
1
2
3
4
5
6
7
8
9
10
11
12
B
rank
3
2
8
6
1
9
7
4
5
C
D
H
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
média
14.7
16.9
10.2
13.2
17.7
10.1
11.6
14.3
13.9
I
J
K
melhores alunos
1 madalena
2
ricardo
3
maria
4
pedro
5
joão
= vlookup(J6,B$4:D$12,3,false)
25 de Maio de 2007
Folha de Cálculo
20
Seleccão por linha e coluna
• Um valor pode ser seleccionado de uma tabela através da
função index, se for indicada a linha e coluna pretendida. Em
alguns casos, a posição (linha ou coluna) pretendida pode ser
obtida pela função auxiliar match.
1
2
3
4
5
6
7
8
9
10
11
12
B
rank
3
2
8
6
1
9
7
4
5
C
D
H
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
média
14.7
16.9
10.2
13.2
17.7
10.1
11.6
14.3
13.9
I
J
K
L
média
10.2
posição
3
= match(K5,H4:H12,0)
5ª posição
que também pode ser obtida através da utilização da função row
= {sum(int(K5=H$4:H$12)*(row(H$4:H$12)-row(H3)))}
25 de Maio de 2007
Folha de Cálculo
21
Seleccão por linha e coluna
• A utilização conjunta das funções index e match permite
determinar não só a posição do elemento máximo de um
vector mas outros campos relacionados registados noutras
colunas.
1
2
3
4
5
6
7
8
9
10
11
12
B
rank
3
2
8
6
1
9
7
4
5
C
D
H
num
20685
18937
20744
20179
20447
19874
18849
20765
19686
nome
maria
ricardo
luís
mário
madalena
vera
marta
pedro
joão
média
14.7
16.9
10.2
13.2
17.7
10.1
11.6
14.3
13.9
I
J
K
L
aluno com melhor média
num
nome
média
20447
madalena
17.7
5ª posição
= max(H4:H12)
= index(B4:D12, match(L6,H4:H12,0), 2)
= index(B4:D12,match(L6,H4:H12,0), 3)
25 de Maio de 2007
Folha de Cálculo
22
Seleccão por linha e coluna
• A determinação da posição de um valor máximo numa tabela
deve ser feita pelos “equivalentes” da função match.
1
2
3
4
5
6
7
8
9
10
11
12
B
C
D
E
F
1
2
3
4
5
6
7
8
9
1
3627
193
9259
5038
9290
253
5918
1460
2249
2
2290
1470
2671
445
9590
7813
5345
9379
3412
3
5011
6761
2379
3824
4931
1034
2998
3915
3324
4
6829
3604
7652
9498
4352
6926
3788
4152
2737
G
5
5700
1211
4735
8519
4428
5172
4384
9058
8152
H
I
J
maior valor
9590
linha
5
coluna
2
= max(C4:G12)
={sum(int(K5=H$4:H$12)*(row(H$4:H$12)-row(H3)))}
={sum(int(K5=H$4:H$12)*(column(H$4:H$12)-column(H3)))}
25 de Maio de 2007
Folha de Cálculo
23
Download

pp - SSDI