Oi Jairo!

Muito obrigada pela explicação. Vou tentar seguir ela direitinho.
Valeu!
Até mais,
Milena.

On Wed, 9 Nov 2005 18:48:30 -0300, Jairo Ferreira Alves wrote
> 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


=========================================
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]

Responder a