1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Resolvido - Ajuda Fórmula Excel

Discussão em 'Programação' iniciada por dampiro, 19 de Novembro de 2008. (Respostas: 3; Visualizações: 864)

  1. dampiro

    dampiro Power Member

    Boas,

    para a empresa onde estou, pretendo criar folha de cálculo que permite calcular o nº de barras a colocar num pavimento. Mas tenho um problema na fórmula.

    Se valor obtido para as barras for de, por exemplo, 5.01, o nº de barras é igual a 5. E isto aplica-se até 5.09.

    Exemplo:

    Se valor for igual ou superior a 5.1, já passaria a 6 barras.

    Como posso definir no Excel este tipo de arrendondamento ou como criar condições? E, atenção, o nº de barras é infinito, ou seja, podem ser 1,2,..., 8,...,5, 6...20, 30... etc. O problema aqui é mesmo as casas decimais!

    Agradeço desde já qualquer resposta e espero que a descrição esteja clara!

    Cumps.
     
    Última edição: 19 de Novembro de 2008
  2. Mavors

    Mavors Power Member

    Bem, isto não é mto bonito e deve de haver outras formas, mas matematicamente esta foi a mais rapida que encontrei...

    Imaginando que tens o teu RANGE de valores está na coluna A, colocas na coluna B a seguinte formula:

    Código:
    =IF(((INT(A1*10)-ROUNDDOWN(A1;0)*10)=0); ROUNDDOWN(A1;0); ROUNDUP(A1;0))
    traduzindo por miúdos primeiro ele vai multiplicar o número por 10 e pegar apenas na parte inteira.

    Ex: 53,0223 irá ficar 530,223 cuja parte inteira será apenas 530.

    A este número irá subtrair o número original arredondado para baixo e multiplicado por 10.

    Ex: 53,0223 irá ficar 53 (pq arredonda para baixo) e 530 depois de multiplicado por 10.


    Ao primeiro número subtrai-se o segundo e verifica-se se o resultado é zero. Neste caso é. Portanto arredonda-se para baixo, caso não seja arredonda-se para cima.
    Vamos experimentar agora com 65,323

    O 1º bloco ficará: 653,23 cuja parte inteira é apenas 653.
    O 2º bloco ficará: 65,0 (arredondado para baixo) e 650 (depois de multiplicado por 10)

    653-650 não é igual a zero, logo 65,323 será arredondado para cima, ficando 66 neste caso.


    Teoricamente tem que funcionar embora não sei se é bem isto que pretendes. Se for, testa para ver se não há nenhum caso que me tenha esquecido de contemplar.


    Não sei se nas formatações existe uma forma mais rápida... mas se existe eu não conheço.
     
  3. reise

    reise Power Member

    =IF(C3-TRUNC(C3)>=0,1;CEILING(C3;1); FLOOR(C3;1))
    acho que faz o que queres
     
  4. dampiro

    dampiro Power Member

    Mavors e reise, vocês são uns génios!

    Funcionam perfeitamente. Ajudaram-me imenso. Era uma quebra-cabeças (para mim!) e que estava a afectar a aceleração de cálculos na empresa.

    Obrigado pelo tempo dispendido.

    Cumprimentos aos dois.
     

Partilhar esta Página