Suponha que minha célula A1 em uma planilha do Excel contenha o número 3 . Se eu inserir a fórmula
= - A1^2 + A1
em A2, A2 mostra o número 12, quando deve mostrar -6 (ou -9 + 3)
Por que é que? Como posso evitar esse comportamento enganoso?
Suponha que minha célula A1 em uma planilha do Excel contenha o número 3 . Se eu inserir a fórmula
= - A1^2 + A1
em A2, A2 mostra o número 12, quando deve mostrar -6 (ou -9 + 3)
Por que é que? Como posso evitar esse comportamento enganoso?
Respostas:
Resposta curta
Para resolver esse problema, basta adicionar um 0 antes do sinal de igual
= 0 - A1^2 + A1
ou adicione alguns parênteses para forçar a ordem padrão de operações
= - (A1^2) + A1
ou substitua o sinal de menos por sua interpretação comum da multiplicação por -1
= -1 * A1^2 + A1
Nesse caso específico, onde você tem o termo extra + A1, a melhor solução é a proposta por @ lioness99a:
= A1 - A1^2
Explicação detalhada
Sob as convenções do Excel,
= - 3^2
é igual a (-3) ^ 2 = 9, enquanto
= 0-3^2
é igual a 0-9 = -9.
Por que adicionar apenas 0 altera o resultado?
Não precedido por um minuendo, o sinal de menos em -3 ^ 2 é considerado um operador de negação , que é um operador unário (com apenas um argumento) que altera o sinal do número (ou expressão) a seguir. No entanto, o sinal de menos em 0-3 ^ 2 é um operador de subtração , que é um operador binário que subtrai o que segue -
do que precede -
. De acordo com as convenções do Excel, o operador de exponenciação ^
é calculado após o operador de negação e antes do operador de subtração . Consulte "Operadores de cálculo e precedência no Excel" , seção "A ordem na qual o Excel executa operações em fórmulas".
A convenção matemática padrão é que a exponenciação é computada antes da negação e subtração ou, mais simplesmente, ^
é computada antes -
. Vergonhosamente, o Excel escolheu convenções diferentes das regras de álgebra, livros escolares, redação acadêmica, calculadoras científicas, Lotus 1-2-3, Mathematica, Maple, linguagens orientadas a computação como Fortran ou Matlab, MS Works e ... VBA (the linguagem usada para escrever macros do Excel). Infelizmente, o Calc do LibreOffice e o Google Sheets seguem a mesma convenção para compatibilidade com o Excel. No entanto, colocar uma expressão na caixa ou barra de pesquisa do Google fornece excelentes resultados. Se você pressionar enter, a ordem dos cálculos será dada usando parênteses. Uma discussão em que um matemático mata os argumentos de um "cientista da computação" defendendo a precedência da negação sobre a exponenciação: http://mathforum.org/library/drmath/view/69058.html
Soluções alternativas gerais
Se você deseja calcular
- Anything ^ 2,
adicione um 0 antes do sinal de igual
0 - Anything ^ 2
ou adicione alguns parênteses para forçar a ordem padrão de operações
- ( Anything ^ 2 )
ou substitua o sinal de menos por sua interpretação comum da multiplicação por -1
-1 * Anything ^ 2
Das alternativas acima, prefiro adicionar um 0 antes do sinal de menos, porque é o mais prático. Se a expressão já estiver entre parênteses, evito adicionar parênteses. O uso intenso de parênteses torna as expressões mais difíceis de ler, depurar e gravar.
Se um termo extra for adicionado (ou subtraído sem o problema de energia uniforme),
- Anything ^ 2 + ExtraTerm,
a melhor solução é colocar o ExtraTerm em primeiro lugar,
ExtraTerm - Anything ^ 2.
Um comentário para outra resposta diz que o único caso em que você deve estar ciente da regra de precedência não padrão é quando um sinal de menos segue um sinal de igual (= -). No entanto, existem outros exemplos, como = exp (-x ^ 2) ou = (- 2 ^ 2 = 2 ^ 2), em que não há um minuendo antes do sinal de menos.
Agradeço a @BruceWayne por propor uma resposta curta, que escrevi no começo.
Você pode estar interessado em De acordo com o Excel, 4 ^ 3 ^ 2 = (4 ^ 3) ^ 2. Essa é realmente a convenção matemática padrão?
Um pouco mais sucinto que a resposta de Rodolfo, você pode usar:
=-(A1^2)+(A1)
(Edit: eu totalmente não vi que era uma pergunta / resposta própria.)
Uma liderança -
é considerada parte do primeiro mandato.
=-3^2
é processado como (-3)^2 = 9
Com um zero no início, ele é tratado como subtração normal.
=0-3^2
é processado como 0 - 3^2 = -9
E se você tiver dois operadores, o mesmo acontecerá.
=0--3^2
é processado como 0 - (-3)^2 = -9
e
=0+-3^2
é processado como0 + (-3)^2 = 9
Como o Excel está interpretando sua equação como:
(-x) ^ 2 + x
Quando você quisesse:
- (x ^ 2) + x
Para evitar esse tipo de comportamento indesejado, acho que a melhor prática é fazer uso pesado de parênteses para definir seu próprio sistema de prioridade, pois negação não é a mesma que subtração e, portanto, não é coberta pelo PEMDAS. Um exemplo seria como:
(- (x ^ 2)) + x
Pode ser um exagero, mas é assim que garanto que o Excel se comporta da maneira que eu quero.
x - x^2
. Isso garante que o - seja interpretado como o operador de subtração binária.
A expressão = - A1^2 + A1
é específica para o Excel, portanto, deve seguir as regras do Excel. Ao contrário de outras respostas aqui, não há uma ordem correta de precedência. Existem apenas convenções diferentes adotadas por diferentes aplicativos. Para sua referência, a ordem de precedência usada pelo excel é:
: Range
<space> intersection
, union
- Negation
% Percentage
^ Exponential
* and / Multiplication and Division
+ and - Addition and Subtraction
& Concatenation
= < > <= >= <> Comparison
Que você pode substituir usando parênteses.
-
pode ser unário ou binário. Mas isso não implica uma ordem de operações. Outras linguagens acertam: em Python, Ruby, Octave, Awk e Haskell (as cinco primeiras linguagens com um operador de exponenciação que veio à mente), -3 ** 2
sempre avalia -9
. Por quê? Porque essa é a resposta correta.
Você pode tê-lo de qualquer maneira:
=-A1^2+A1
retornará um 12 , mas:
=0-A1^2+A1
retornará um -6
Se você acha que retornar 12 viola o bom senso; esteja ciente de que o Planilhas Google faz a mesma coisa.
=A1-A1^2
também retorna -6
Como alternativa, você poderia simplesmente fazer
= A1 - A1^2
Porque -y + x = x-y
Outras pessoas responderam "como posso evitar isso?" parte da pergunta. Eu vou lhe dizer por que isso acontece.
Isso acontece porque os computadores pessoais em 1979 tinham capacidade de processamento e memória muito limitada.
O VisiCalc foi introduzido para o Apple II em 1979, dois anos antes do lançamento inicial do PC IBM (no qual a maioria dos computadores desktop e laptop modernos traçam sua ancestralidade direta). O Apple II pode ser adquirido com até 64 KiB (65.536 bytes) de RAM, e o VisiCalc exigia pelo menos 32 KiB para ser executado. Como um pouco de lado aqui, o VisiCalc é amplamente considerado o "aplicativo matador" para o Apple II, e talvez de fato para microcomputadores pessoais em geral.
Quanto menos casos especiais e menos previsão da fórmula forem necessários, mais simples (e consequentemente menor) o código para analisar uma fórmula de planilha pode ser feito. Portanto, faria sentido exigir que o usuário fosse um pouco mais explícito em casos extremos, em troca de poder manipular planilhas maiores. Lembre-se, mesmo com um Apple II de ponta, você tinha apenas algumas dezenas de kilobytes para jogar depois que a memória exigida pelo aplicativo era contabilizada. Com um sistema com pouca memória (48 KiB de RAM não era uma configuração incomum para uma máquina "séria"), o limite era ainda mais baixo.
Quando a IBM introduziu seu PC, foi criada uma porta do VisiCalc para a nova arquitetura. A Wikipedia refere-se a essa porta como "compatível com bug" , portanto, você esperaria ver exatamente a mesma fórmula ao analisar o comportamento, mesmo se o sistema tecnicamente fosse capaz de analisar de forma mais complexa.
A partir de 1982, a Microsoft competiu com o VisiCalc e, posteriormente, com o 1-2-3, com sua planilha de plataforma cruzada Multiplan . Posteriormente, o Lotus 1-2-3 foi introduzido em 1983 especificamente para o IBM PC e rapidamente ultrapassou o VisiCalc. Para facilitar a transição, fazia sentido analisar as fórmulas da mesma maneira que o VisiCalc. Portanto, o limitado comportamento de antecipação seria levado adiante.
Em 1985, a Microsoft introduziu o Excel , originalmente para Macintosh e começando com a versão 2 em 1987 para o PC. Novamente, para facilitar a transição, fazia sentido levar adiante a fórmula de analisar o comportamento com o qual as pessoas já estavam acostumadas desde quase uma década.
A cada atualização do Excel, existia a oportunidade de alterar o comportamento, além de exigir que os usuários aprendessem uma nova maneira de digitar fórmulas, além de arriscar quebrar a compatibilidade com planilhas usadas ou criadas com a versão anterior. Em um mercado ainda muito competitivo, com várias empresas comerciais competindo entre si em cada campo, provavelmente foi tomada a decisão de manter o comportamento que os usuários estavam acostumados.
Avanço rápido para 2019, e ainda estamos presos às decisões de comportamento de análise de fórmulas originalmente tomadas até 1978-1979.
A expressão - A1^2
contém dois operadores, a saber, o operador de negação unário -
e o operador de exponenciação binária ^
. Com a ausência de parênteses, pode haver duas interpretações. Ou:
-(A1^2)
ou:
(-A1)^2
O primeiro diz primeiro fazer a exponenciação com operandos A1
e 2
, em seguida, negar isso.
O segundo diz primeiro faça a negação no operando A1
e depois use exponenciação no resultado disso e 2
.
Como foi dito nos comentários à pergunta, os poderes têm maior prioridade do que sinais negativos em qualquer ambiente são. O que significa que é melhor que um sistema assuma o primeiro.
No entanto, o Excel prefere o segundo.
A lição é que, se você não tiver certeza se o seu ambiente é saudável ou não, inclua o parêntese no lado seguro. Então escreva -(A1^2)
.
Este não é um problema com o Excel, mas com expoentes e negativos. Quando você pega um número e aumenta para uma potência uniforme, você cancela o sinal negativo.
-x^2 + x == (-x * -x) + x
x = 3 => (-3 * -3) + 3
== 9 + 3 => 12
Você precisa usar parênteses e múltiplos por -1
-1 * (x^2) + x
-x^2
onde x é 3 e x^2
onde x é -3. -x^2+x
nunca chegará a 12: wolframalpha.com/input/?i=-x%5E2%2Bx
-x ^ 2 + x onde x = 3 Este é um exemplo de equação quadrática A equação pode ser escrita assim: -3 * -3 + 3: A multiplicação tem precedência sobre a adição, então o resultado será escrito da seguinte forma: 9 + 3 : Por que = 9 porque um número negativo xa número negativo fornece um resultado positivo. Isso pode ser verificado usando qualquer calculadora, regra de slides ou qualquer programa de matemática para computadores Resultado final 9 + 3 = 12
É apenas uma matemática realmente simples.
Regra 1. Mesmo multiplicações de números negativos, produziriam um resultado positivo:
menos * menos = mais
menos * menos * menos = menos
menos * menos * menos * menos = mais
Isso se deve ao fato de que menos se cancelam em pares.
Regra 2. O poder de cada número identifica que esse número será multiplicado por si próprio várias vezes.
(2) ^ n, onde n = 2 => 2 * 2 = 4
(-2) ^ n, onde n = 2 => (-2) * (- 2) = 4
E se você pode ver a regra número 1 ..
(-3) ^ n, onde n = 3 => (-3) * (-3) * (-3) = 9 * (-3) = -27
Regra 3. Multiplicação e Divisão têm prioridade mais alta que adição e subtração.
3 * 5 + 2 = 15 + 2 = 17
3 * (5 + 2) = 3 * 7 = 21
E há a resposta da sua pergunta:
Combinando as três regras anteriores:
Qual é o valor de x na equação x + 2 = 0?
Meu conselho é que você gaste algum tempo todo ano e continue atualizando as regras fundamentais da matemática.
Na verdade, é uma habilidade que você pode manter e manter-se no topo de uma grande parte do mundo, apenas conhecendo matemática básica.
+-*/
, mas não a operadores unários, como -
ou +
. A precedência do operador de energia é maior do que *
e os /
operadores unários têm precedência ainda maior #