Calculando o desvio do intervalo de valores?

0

Estou tentando descobrir se há uma função para fazer o que eu poderia fazer com várias instruções IF, apenas para torná-la mais robusta e padrão, suponho (e mais legível)

Eu tenho uma planilha com 4 colunas de dados

A    B    C    D
1200 1350 1700 []
100  120  50   []

A = Mínimo, B = Máximo, C = Real

Gostaria de obter a diferença na coluna D. Se C for menor que A, deve ser A - C, por exemplo. Se C é maior que B então deveria ser C - B. Se C está entre A e B, eu quero mostrar o desvio do ponto médio de A & B.

Eu poderia fazer isso com algumas instruções IF, mas não tenho certeza se existe uma maneira melhor de fazer isso.

Edit: O método de instrução IF que eu mesmo fiz é o seguinte

=IF([@Actual] < [@[Min]],([@Actual]-[@[Min]]),(IF([@Actual] > [@[Max]],([@Actual]-[@[Max]]),([@Actual]-(([@[Min]]+[@[Max]])/2)))))

Qual depois de uma hora de brincadeira parece me dar os resultados que eu quero. Mas em uma planilha de 400 páginas e 48 páginas, causou um atraso razoável.

Eu acho que a verdadeira questão é, existem funções embutidas que poderiam produzir os mesmos resultados, mas com muito menos código / código mais rápido?

    
por Elarys 06.04.2015 / 09:58

2 respostas

0

Você precisa de duas funções if e uma função average , não há função interna para este cálculo. Se a legibilidade é realmente fundamental para você, considere usar algum VBA e criar uma UDF.

    
por 06.04.2015 / 10:42
0

Considere:

=IF(C1<A1,A1-C1,IF(C1>B1,C1-B1,ABS(C1-(B1-A1)/2)))
    
por 06.04.2015 / 17:40