Utilização da função N
2 participantes
Página 1 de 1
Utilização da função N
Bom dia.
Utilizo freqüentemente a função SOMARPRODUTO e em diversos casos é necessário utilizar a função N juntamente com a função SOMARPRODUTO para que a fórmula funcione corretamente.
Ex:
CÓDIGO VALOR ANO
5000216 10,00 2010
5000226 15,00 2011
5002519 20,00 2010
5002626 25,00 2011
5002975 10,00 2011
5003013 15,00 2010
5003014 40,00 2011
5000216 15,00 2011
5000226 20,00 2011
5002519 25,00 2010
5002626 10,00 2010
5002975 15,00 2010
5003013 15,00 2010
5003014 40,00 2011
5000216 15,00 2011
5000226 25,00 2010
5002626 10,00 2011
5002975 15,00 2011
5003013 40,00 2010
Digamos que eu queria saber o valor total da soma detalhada por código/ano 2010 e então digito a seguinte fórmula: =SOMARPRODUTO($A$2:$A$20=$E2);($C$2:$C$20=2010)*($B$2:$B$20)
Resultado: “A fórmula digitada contém um erro”
Para que a mesma funcione corretamente é preciso utilizar a função N: =SOMARPRODUTO(N($A$2:$A$20=$E2);($C$2:$C$20=2010)*($B$2:$B$20))
Tempos atrás eu vi um tópico sobre esse assunto no blog do Adilson e pelo o que entendi, a função N tem com uma das utilidades converter um valor não número em número. Por exemplo: “Verdadeiro” em 1 e “Falso” em 0.
Dúvida: nesse meu exemplo, todos os valores não são numéricos ? Então por que a necessidade de inserir a função N ?
Conforme a minha informação anterior, eu sempre utilizo a função SOMARPRODUTO aninhada á função N, porém, o motivo da fórmula só funcionar assim nunca ficou muito claro. Alguém poderia ajudar a esclarecer isso ?
Obrigado.
Utilizo freqüentemente a função SOMARPRODUTO e em diversos casos é necessário utilizar a função N juntamente com a função SOMARPRODUTO para que a fórmula funcione corretamente.
Ex:
CÓDIGO VALOR ANO
5000216 10,00 2010
5000226 15,00 2011
5002519 20,00 2010
5002626 25,00 2011
5002975 10,00 2011
5003013 15,00 2010
5003014 40,00 2011
5000216 15,00 2011
5000226 20,00 2011
5002519 25,00 2010
5002626 10,00 2010
5002975 15,00 2010
5003013 15,00 2010
5003014 40,00 2011
5000216 15,00 2011
5000226 25,00 2010
5002626 10,00 2011
5002975 15,00 2011
5003013 40,00 2010
Digamos que eu queria saber o valor total da soma detalhada por código/ano 2010 e então digito a seguinte fórmula: =SOMARPRODUTO($A$2:$A$20=$E2);($C$2:$C$20=2010)*($B$2:$B$20)
Resultado: “A fórmula digitada contém um erro”
Para que a mesma funcione corretamente é preciso utilizar a função N: =SOMARPRODUTO(N($A$2:$A$20=$E2);($C$2:$C$20=2010)*($B$2:$B$20))
Tempos atrás eu vi um tópico sobre esse assunto no blog do Adilson e pelo o que entendi, a função N tem com uma das utilidades converter um valor não número em número. Por exemplo: “Verdadeiro” em 1 e “Falso” em 0.
Dúvida: nesse meu exemplo, todos os valores não são numéricos ? Então por que a necessidade de inserir a função N ?
Conforme a minha informação anterior, eu sempre utilizo a função SOMARPRODUTO aninhada á função N, porém, o motivo da fórmula só funcionar assim nunca ficou muito claro. Alguém poderia ajudar a esclarecer isso ?
Obrigado.
Afonso Serri- Iniciante
- Mensagens : 74
Data de inscrição : 04/07/2011
Localização : Joinville
Re: Utilização da função N
Boa tarde, meu caro.
Primeiramente o erro está ocorrendo por que os parênteses não estão devidamente fechados na fórmula.
O correto é =SOMARPRODUTO(($A$2:$A$20=$E2);($C$2:$C$20=2010)*($B$2:$B$20)).
A função SOMARPRODUTO admite que os argumentos sejam informados de duas formas:
- Separados por ponto e vírgula;
- Conectados por um sinal de multiplicação.
Se a sintaxe utilizada for a primeira, todos os argumentos tem que ser numéricos.
O primeiro argumento ($A$2:$A$20=$E2) não é numérico. Como trata-se do resultado de uma comparação, cada um dos elementos comparados tem como resultado VERDADEIRO ou FALSO. A este tipo de dado chamamos de valores lógicos ou valores Booleanos.
Para transformar os valores Booleanos em numéricos, utilizamos a função N. Desta forma, um vetor como {VERDADEIRO;VERDADEIRO;FALSO;FALSO} é convertido em {1;1;0;0} se utilizarmos N como operador. Outras alternativas: multiplicar o vetor por 1 ou colocar dois sinais negativos consecutivos. Desta forma, são equivalentes:
N($A$2:$A$20=$E2);
1*($A$2:$A$20=$E2);
--($A$2:$A$20=$E2).
Caso opte-se pela 2ª sintaxe, não há necessidade do uso de N, pois o produto é realizado antes e SOMARPRODUTO atua sobre o vetor resultante da mesma forma que uma função matricial.
=SOMARPRODUTO(($A$2:$A$20=$E2)*($C$2:$C$20=2010)*($B$2:$B$20))
Ambas as alternativas são válidas e intercambiáveis, desde que entendidas as regras da operação e utilizadas as funções adequadas de transformação quando necessárias.
Particularmente, prefiro a utilização na 2ª sintxe, visto que não tenho que me preocupar com a transformação de Booleanos para binários.
Espero ter esclarecido tua dúvida, mas se não ficou claro, vamos explorar o assunto mais um pouco.
Abraços
Primeiramente o erro está ocorrendo por que os parênteses não estão devidamente fechados na fórmula.
O correto é =SOMARPRODUTO(($A$2:$A$20=$E2);($C$2:$C$20=2010)*($B$2:$B$20)).
A função SOMARPRODUTO admite que os argumentos sejam informados de duas formas:
- Separados por ponto e vírgula;
- Conectados por um sinal de multiplicação.
Se a sintaxe utilizada for a primeira, todos os argumentos tem que ser numéricos.
O primeiro argumento ($A$2:$A$20=$E2) não é numérico. Como trata-se do resultado de uma comparação, cada um dos elementos comparados tem como resultado VERDADEIRO ou FALSO. A este tipo de dado chamamos de valores lógicos ou valores Booleanos.
Para transformar os valores Booleanos em numéricos, utilizamos a função N. Desta forma, um vetor como {VERDADEIRO;VERDADEIRO;FALSO;FALSO} é convertido em {1;1;0;0} se utilizarmos N como operador. Outras alternativas: multiplicar o vetor por 1 ou colocar dois sinais negativos consecutivos. Desta forma, são equivalentes:
N($A$2:$A$20=$E2);
1*($A$2:$A$20=$E2);
--($A$2:$A$20=$E2).
Caso opte-se pela 2ª sintaxe, não há necessidade do uso de N, pois o produto é realizado antes e SOMARPRODUTO atua sobre o vetor resultante da mesma forma que uma função matricial.
=SOMARPRODUTO(($A$2:$A$20=$E2)*($C$2:$C$20=2010)*($B$2:$B$20))
Ambas as alternativas são válidas e intercambiáveis, desde que entendidas as regras da operação e utilizadas as funções adequadas de transformação quando necessárias.
Particularmente, prefiro a utilização na 2ª sintxe, visto que não tenho que me preocupar com a transformação de Booleanos para binários.
Espero ter esclarecido tua dúvida, mas se não ficou claro, vamos explorar o assunto mais um pouco.
Abraços
Re: Utilização da função N
Olá Adilson, boa noite.
Tu esclareceste mais de uma dúvida que eu tinha, pois realmente, eu já vi algumas vezes o uso da função juntamente com os dois sinais negativos e eu não sabia o motivo deles estarem sendo utilizados. rsrs
Entendi também a questão dos valores booleanos. A minha interpretação era outra. Quando se falava em valores numéricos eu pensava tratar-se dos valores contidos na minha base de dados ao invés do valor retornado pela comparação.
Continuando com o exemplo do post anterior. Digamos que ao invés de calcular o valor referente ao ano de 2010 eu queira calcular o valor referente á data 01/08/2011, pensei que a função N era utilizada para converter esse valor para 37104, ou seja, um valor numérico.
Exemplo 1: =SOMARPRODUTO(($A$2:$A$20=$E2);(($C$2:$C$20=VALOR("1/8/2011"))*($B$2:$B$20)))
Resultado:
CÓDIGO VALOR
5000216 0,00
5000226 0,00
5002519 0,00
5002626 0,00
5002975 0,00
5003013 0,00
5003014 0,00
Exemplo 2:
=SOMARPRODUTO(N($A$2:$A$20=$E2);(($C$2:$C$20=VALOR("1/8/2011"))*($B$2:$B$20)))
Resultado:
CÓDIGO VALOR
5000216 10,00
5000226 25,00
5002519 25,00
5002626 25,00
5002975 15,00
5003013 15,00
5003014 40,00
Como na minha base não existe nenhum valor no formato “data”, eu acreditava que todos eram valores numéricos. Não conseguia enxergar que o valor retornado pela comparação no início da fórmula retorna um valor não numérico, nesse caso VERDADEIRO ou FALSO. rsrs
Perfeito Adilson, as suas explicações foram ótimas, dignas de um grande especialista no assunto.
Novamente, muito obrigado.
Abraços.
Tu esclareceste mais de uma dúvida que eu tinha, pois realmente, eu já vi algumas vezes o uso da função juntamente com os dois sinais negativos e eu não sabia o motivo deles estarem sendo utilizados. rsrs
Entendi também a questão dos valores booleanos. A minha interpretação era outra. Quando se falava em valores numéricos eu pensava tratar-se dos valores contidos na minha base de dados ao invés do valor retornado pela comparação.
Continuando com o exemplo do post anterior. Digamos que ao invés de calcular o valor referente ao ano de 2010 eu queira calcular o valor referente á data 01/08/2011, pensei que a função N era utilizada para converter esse valor para 37104, ou seja, um valor numérico.
Exemplo 1: =SOMARPRODUTO(($A$2:$A$20=$E2);(($C$2:$C$20=VALOR("1/8/2011"))*($B$2:$B$20)))
Resultado:
CÓDIGO VALOR
5000216 0,00
5000226 0,00
5002519 0,00
5002626 0,00
5002975 0,00
5003013 0,00
5003014 0,00
Exemplo 2:
=SOMARPRODUTO(N($A$2:$A$20=$E2);(($C$2:$C$20=VALOR("1/8/2011"))*($B$2:$B$20)))
Resultado:
CÓDIGO VALOR
5000216 10,00
5000226 25,00
5002519 25,00
5002626 25,00
5002975 15,00
5003013 15,00
5003014 40,00
Como na minha base não existe nenhum valor no formato “data”, eu acreditava que todos eram valores numéricos. Não conseguia enxergar que o valor retornado pela comparação no início da fórmula retorna um valor não numérico, nesse caso VERDADEIRO ou FALSO. rsrs
Perfeito Adilson, as suas explicações foram ótimas, dignas de um grande especialista no assunto.
Novamente, muito obrigado.
Abraços.
Afonso Serri- Iniciante
- Mensagens : 74
Data de inscrição : 04/07/2011
Localização : Joinville
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|