Oi Milena,
A solução para o seu caso não é muito trivial, mas tem jeito.
É um processo um pouco longo para explicar, logo, quem não tiver interesse nesse
problema, pode parar de ler por aqui e apagar o e-mail.
Como a lista não permite anexos, vou ter que colocar o passo-a-passo do exemplo
e da solução que eu consegui por aqui, o que vair tornar o texto bem grande,
mas para os que resistiram até aqui, vamos lá.
Fiz um exemplo para testar com as seguintes características:
Na coluna A, iniciando em A1, tenho os seguintes dados:
FaixaIni
0,00
500,01
1.000,01
2.000,01
3.000,01
4.000,01
5.000,01
6.000,01
7.000,01
8.000,01
9.000,01
Na coluna B, iniciando em B1, tenho os seguintes dados:
FaixaFim
500,00
1.000,00
2.000,00
3.000,00
4.000,00
5.000,00
6.000,00
7.000,00
8.000,00
9.000,00
50.000,00
Estas são as colunas de parâmetros que vou usar para definir se um funcionário
cai em uma faixa ou em outra.
Em uma coluna qualquer, no meu exemplo a D, iniciando em D1, tenho os nomes de
trinta funcionários (fictícios). Essa coluna não será utilizada nos cálculos,
mas serve para fins didáticos.
Funcionário
Jose
Rosler
Nubia
Schiezaro
Guedes
Manoel
Marinheiro
Porfirio
Coelho
Grellet
Gazzoli
Gorito
Guerta
Harumi
Haseyama
Jimenez
Machado
Mallet
Mesquita
Mitie
Maria
Moreira
Naomi
Nascimento
Pires
Pozzi
Raquel
Scarpim
Xavier
Garcia
Na coluna E, à partir de E1 tenho os salários:
Salário Base
3.511,00
1.796,00
8.003,00
7.972,00
2.461,00
827,00
5.670,00
6.481,00
6.043,00
5.831,00
3.159,00
6.271,00
6.629,00
8.008,00
6.420,00
1.339,00
3.195,00
7.014,00
10.214,00
9.709,00
6.263,00
3.028,00
1.298,00
4.740,00
3.325,00
8.335,00
2.030,00
217,00
1.978,00
1.797,00
Agora começa a parte complicada:
Para fazer os cálculos do número de funcionários que caem em uma determinada
faixa salarial, temos que usar uma fórmula meio esquisita baseada na função
=Soma() com características de fórmulas de matriz.
Mas que *&#$@ esse cara está falando???
Calma, na ajuda do OpenOffice.org dá para tentar entender um pouco sobre isso,
mas vou ver se consigo explicar um pouco mais no final desse documento.
Na coluna G, iniciando em G1, coloque, somente para ficar mais bonito, as faixas
salariais, usando as fórmulas abaixo:
Faixas Salariais
=TEXTO(A2;"#.##0,00") & " -> " & TEXTO(B2;"#.##0,00")
=TEXTO(A3;"#.##0,00") & " -> " & TEXTO(B3;"#.##0,00")
=TEXTO(A4;"#.##0,00") & " -> " & TEXTO(B4;"#.##0,00")
=TEXTO(A5;"#.##0,00") & " -> " & TEXTO(B5;"#.##0,00")
=TEXTO(A6;"#.##0,00") & " -> " & TEXTO(B6;"#.##0,00")
=TEXTO(A7;"#.##0,00") & " -> " & TEXTO(B7;"#.##0,00")
=TEXTO(A8;"#.##0,00") & " -> " & TEXTO(B8;"#.##0,00")
=TEXTO(A9;"#.##0,00") & " -> " & TEXTO(B9;"#.##0,00")
=TEXTO(A10;"#.##0,00") & " -> " & TEXTO(B10;"#.##0,00")
=TEXTO(A11;"#.##0,00") & " -> " & TEXTO(B11;"#.##0,00")
=TEXTO(A12;"#.##0,00") & " -> " & TEXTO(B12;"#.##0,00")
Totais
Essas fórmulas irão pegar o texto das células das colunas A e B e exibí-los como
mostrado abaixo:
Faixas Salariais
0,00 -> 500,00
500,01 -> 1.000,00
1.000,01 -> 2.000,00
2.000,01 -> 3.000,00
3.000,01 -> 4.000,00
4.000,01 -> 5.000,00
5.000,01 -> 6.000,00
6.000,01 -> 7.000,00
7.000,01 -> 8.000,00
8.000,01 -> 9.000,00
9.000,01 -> 50.000,00
Totais
Finalmente estamos chegando aos cálculos que interessam. Na coluna H, iniciando
em H1, coloque
Número de Funcionários
Em H2, coloque:
=SOMA(($E$2:$E$31>=$A2) * ($E$2:$E$31<=$B2))
Obs.: Para colocar essas fórmulas, você deve copiar o texto à partir do = até
o último ). Vá na célula H2 e pressione F2 para entrar no modo de edição de
fórmulas e cole o conteúdo copiado na memória, por exemplo:
Para aceitar a fórmula, pressione CTRL + SHIFT + ENTER, pois assim o Calc vai
entender que você está usando uma fórmula de Matriz (indicados pelos sinais de
{ e }no início e final da fórmula).
Copie o conteúdo da célula H2, para H3 até H12 e na célula H13, coloque
=SOMA(H2:H12)
As fórmulas devem ficar como mostrado abaixo:
Número de Funcionários
{=SOMA(($E$2:$E$31>=$A2) * ($E$2:$E$31<=$B2))}
{=SOMA(($E$2:$E$31>=$A3) * ($E$2:$E$31<=$B3))}
{=SOMA(($E$2:$E$31>=$A4) * ($E$2:$E$31<=$B4))}
{=SOMA(($E$2:$E$31>=$A5) * ($E$2:$E$31<=$B5))}
{=SOMA(($E$2:$E$31>=$A6) * ($E$2:$E$31<=$B6))}
{=SOMA(($E$2:$E$31>=$A7) * ($E$2:$E$31<=$B7))}
{=SOMA(($E$2:$E$31>=$A8) * ($E$2:$E$31<=$B8))}
{=SOMA(($E$2:$E$31>=$A9) * ($E$2:$E$31<=$B9))}
{=SOMA(($E$2:$E$31>=$A10) * ($E$2:$E$31<=$B10))}
{=SOMA(($E$2:$E$31>=$A11) * ($E$2:$E$31<=$B11))}
{=SOMA(($E$2:$E$31>=$A12) * ($E$2:$E$31<=$B12))}
=SOMA(H2:H12)
O resultado da operação deve ficar assim:
Número de Funcionários
1
1
5
2
5
1
2
6
2
3
2
30
Isso já resolveria o seu problema, mas já que estamos com a mão na massa,
podemos fazer o cálculo da Soma dos Salários por faixa salarial. Para isso, vá
na célula I1 e coloque:
Acumulado na Faixa Salarial
Em I2, coloque a fórmula:
=SOMA(($E$2:$E$31>=$A2) * ($E$2:$E$31<=$B2) * ($E$2:$E$31))
Não custa lembrar que, para colocar essas fórmulas, você deve copiar o texto à
partir do = até o último ). Vá na célula I2 e pressione F2 para entrar no
modo de edição de fórmulas e cole o conteúdo copiado na memória, por exemplo:
Para aceitar a fórmula, pressione CTRL + SHIFT + ENTER, pois assim o Calc vai
entender que você está usando uma fórmula de Matriz (indicados pelos sinais de
{ e }no início e final da fórmula).
Copie o conteúdo da célula I2, para I3 até I12 e na célula I13, coloque
=SOMA(I2:I12)
As fórmulas devem ficar como mostrado abaixo:
Acumulado na Faixa Salarial
{=SOMA(($E$2:$E$31>=$A2) * ($E$2:$E$31<=$B2) * ($E$2:$E$31))}
{=SOMA(($E$2:$E$31>=$A3) * ($E$2:$E$31<=$B3) * ($E$2:$E$31))}
{=SOMA(($E$2:$E$31>=$A4) * ($E$2:$E$31<=$B4) * ($E$2:$E$31))}
{=SOMA(($E$2:$E$31>=$A5) * ($E$2:$E$31<=$B5) * ($E$2:$E$31))}
{=SOMA(($E$2:$E$31>=$A6) * ($E$2:$E$31<=$B6) * ($E$2:$E$31))}
{=SOMA(($E$2:$E$31>=$A7) * ($E$2:$E$31<=$B7) * ($E$2:$E$31))}
{=SOMA(($E$2:$E$31>=$A8) * ($E$2:$E$31<=$B8) * ($E$2:$E$31))}
{=SOMA(($E$2:$E$31>=$A9) * ($E$2:$E$31<=$B9) * ($E$2:$E$31))}
{=SOMA(($E$2:$E$31>=$A10) * ($E$2:$E$31<=$B10) * ($E$2:$E$31))}
{=SOMA(($E$2:$E$31>=$A11) * ($E$2:$E$31<=$B11) * ($E$2:$E$31))}
{=SOMA(($E$2:$E$31>=$A12) * ($E$2:$E$31<=$B12) * ($E$2:$E$31))}
=SOMA(I2:I12)
O resultado da operação deve ficar assim:
Acumulado na Faixa Salarial
217,00
827,00
8.208,00
4.491,00
16.218,00
4.740,00
11.501,00
38.107,00
14.986,00
24.346,00
19.923,00
143.564,00
Quer gerar um gráfico? Ficou fácil não?
Mas afinal, o que está sendo feito para realizar esses cálculos???
Bom, vou tentar explicar, baseado no que eu entendi à partir da ajuda do
OpenOffice.org.
Para o cálculo do número de funcionários por faixa salarial, usamos a seguinte
fórmula:
{=SOMA(($E$2:$E$31>=$A2) * ($E$2:$E$31<=$B2))}
Essa fórmula está gerando uma matriz interna no Calc com os resultados de falso
e verdadeiro, ou mais precisamente, 0's e 1's, para cada linha avaliada. É mais
ou menos assim:
O trecho da fórmula:
($E$2:$E$31>=$A2)
gera uma matriz interna que tem 1 se o valor da linha E2 for maior do que o
valor de A2. No nosso exemplo, E2 = 3.511,00 e A2 = 0,00, logo o valor
retornado para a matriz é 1.
O trecho da fórmula:
($E$2:$E$31<=$B2)
gera outra matriz interna que tem 1 se o valor da linha E2 for menor do que o
valor de B2. No nosso exemplo, E2 = 3.511,00 e B2 = 500,00, logo o valor
retornado para a matriz é 0.
Esse processo é repetido para cada linha e no final existem duas matrizes.
Quando usamos:
($E$2:$E$31>=$A2) * ($E$2:$E$31<=$B2)
Estamos fazendo uma multiplicação dessas duas matrizes, o que vai gerar uma
terceira matriz com os resultados das multiplicações de cada linha da matriz 1
pela linha equivalente na matriz 2. No nosso exemplo, temos 1 do primeiro
trecho e 0 do segundo trecho, logo o resultado da primeira linha da terceira
matriz é 0'.
Na célula E29 temos um valor de 217,00, logo, para o primeiro trecho da fórmula,
o resultado é 1, pois 217 é maior do que 0 e para o segundo trecho temos o
resultado igual a 1 também, pois 217 é menor do que 500.
Assim, quando fazemos a multiplicação, a linha 28 da terceira matriz terá um
resultado igual a 1.
Portanto, quando temos a terceira matriz toda montada, ela terá linhas com 0 e
linhas com 1. Parece que agora ficou fácil. Ao usar a função Soma(), iremos
somar todas a linhas da terceira matriz. Como só temos 0's e 1's, teremos o
número exato de funcionários que estão dentro da faixa salarial em análise.
{=SOMA(($E$2:$E$31>=$A2) * ($E$2:$E$31<=$B2))}
Para o nosso exemplo, só temos 1 funcionário dentro dessa faixa salarial (0 ->
500).
Entendido até aqui?
Espero que sim, pois agora vem uma parte um pouco mais complicada.
E para calcularmos o Acumulado por Faixa Salarial?
Bom, você deve ter notado que a fórmula é um pouco maior:
{=SOMA(($E$2:$E$31>=$A2) * ($E$2:$E$31<=$B2) * ($E$2:$E$31))}
Existe um terceiro componente que vai multiplicar o resultado da primeira e da
segunda matriz, por uma matriz com os valores salariais de cada funcionário.
Algo mais ou menos assim, conforme o exemplo anterior (no caso da célula E29):
Primeiro trecho = 1 [matriz 1]
Segundo trecho = 1 [matriz 2]
Resultado da multiplicação na matriz = 1 [matriz 3]
Salário = 217 [matriz salário]
Resultado da multiplicação da linha 28 da [matriz 3] pelo valor da linha 28 da
[matriz salário] = 1 * 217 = 217 [Matriz 5]
Quando aplicamos a função Soma(), iremos somar todas as linhas da [matriz 5], o
que dará o resultado do Acumulado por Faixa Salarial. Como nesse caso só temos
um funcionário com salário abaixo de R$ 500,00, o Acumulado será R$ 217,00.
Conclusão (Finalmente!!!!)
Essa é uma forma de fazer cálculos de Sumariação (também conhecido como
Sumarização, apesar de estar gramaticalmente errado), ou separação por
classes.
É uma análise bastante interessante e acho que valeria à pena se o pessoal do
OpenOffice.org conseguisse criar uma fórmula que já fizesse isso
automaticamente. Fica a dica.
Bom, espero que esse pequeno curso possa ajudar a resolver o seu problema.
Qualquer dúvida, por favor entre em contato.
Atenciosamente,
Jairo Ferreira Alves
Analista de Suporte
Núcleo de Informática e Modernização - NUINF
Secretaria da Saúde do Estado do Ceará - SESA
(85) 3101-5262 / (85) 3101-5226 (fax)
Citando MILENA C DA SILVA DE CAMARGO <[EMAIL PROTECTED]>:
> Prezados colegas,
>
> Tenho uma planilha com informações da folha de pagamento com dados como: nome
>
> dos funcionários, departamento, salário base, data de admissão, etc...
> Os funcionários possuem os mais diferenciados salários.
> Preciso montar uma tabela assim:
>
> Faixa salarial Numero de funcionários
> 0 a 500,00
> 500,01 a 1000,00
> 1000,01 a 2000,00
> 2000,01 a 3000,00
> 3000,01 a 4000,00
> ...
> maior que 10000,00
>
>
> Tentei usar a função cont.se
> Consegui fazer para a faixa de 0 a 500,00 mas para os demais não tive
> sucesso, pois tem que controlar a faixa de valores.
> Alguém pode me ajudar?
> Usamos o OOo 1.1.2, Windows 98 SE.
>
> Desde já agradeço,
> Milena.
>
> =========================================
> Milena Carvalho S. Camargo
> E-mail: [EMAIL PROTECTED]
> Fone comercial: (19) 3124-1648
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------
Esta mensagem foi enviada utilizando o serviço de correio
da Secretaria da Saude do Estado do Ceara