2008-08-22 04:31:59 +0000 2008-08-22 04:31:59 +0000
77
77

Formatar um número com casas decimais opcionais em Excel

Tenho números em células no Excel. Quero os números formatados para que, se tiverem casas decimais, mostrem no máximo duas, e se não tiverem casas decimais, não mostrem nenhuma.

Por exemplo.

  • 15 devem ser formatados como 15, NÃO 15,00
  • 14,3453453 devem ser formatados como 14,35
  • 12,1 devem ser formatados como 12,1
  • 0 devem ser formatados como 0

O código de formato personalizado mais próximo que arranjei é 0.##. Infelizmente este formato 15.00 como 15, (notar o ponto decimal extra).

Para complicar ainda mais a questão, a folha de cálculo é o resultado de uma exportação do SQL Server Reporting Services. Portanto, não são possíveis macros. Oh bem, parece que 0.## é a minha melhor aposta, e eles podem simplesmente viver com o período extra.

Respostas (9)

33
33
33
2012-05-08 18:16:49 +0000

Em alternativa, pode resolver o problema do ponto decimal “opcional” usando a seguinte solução:

Formato numérico: General;[Red](General)

Isto adicionará a casa decimal e o valor fracionário em conformidade, ao mesmo tempo que se formatam números negativos de uma forma mais legível.

Quanto à pergunta original do cartaz, ainda é necessário arredondar/truncar os pontos decimais “extra” usando uma fórmula. Contudo, esta é uma fórmula simples de =ROUND(<value>,<desired decimal places>) que não é extremamente dispendiosa em termos computacionais.

Exemplos:

2500 -> 2500
0.25 -> 0.25
-2500 -> (2500)
-0.25 -> (0.25)
15
15
15
2008-09-07 17:09:26 +0000

Os formatos personalizados Excel podem fornecer uma resposta parcial

Os formatos personalizados para números em Excel são introduzidos neste formato:

  • formato de número positivo;formato de número negativo;formato zero;formato de texto

Um formato que se aproxima dos seus requisitos, mas que deixa na casa decimal para números sem casas decimais é:

-

,###…??;(#,###…??);0

& Exemplo:

  • 15 é apresentado como 15.
  • 14,3453453 é apresentado como 14,35
  • 12,1 é apresentado como 12,1
  • 0 é apresentado como 0
5
5
5
2011-08-26 00:28:32 +0000

Aqui está um método que utiliza a formatação condicional.

  1. clique com o botão direito do rato na sua célula, escolha “Formatar Célula”
  2. Seleccionar “Personalizado”
  3. Introduzir “0.####” (adicionar mais ou menos #s para controlar o número máximo de casas decimais)
  4. Clicar OK
  5. Com a célula ainda seleccionada, usar “Formatação Condicional” (pode ser um item de menu em Formato ou botão em Home, dependendo da sua versão Excel)
  6. Adicione uma nova regra, baseada na fórmula “=MOD(H32,1)=0”

  7. Para o formato desta regra, seleccionar o separador do número, escolher “Personalizado”

  8. Desta vez, introduza a fórmula “0”

  9. Clique OK vezes suficientes para voltar à folha (varia entre as versões Excel)

Aí está, desfrute com responsabilidade! Se quiser copiar o formato para outras células, lembre-se que pode copiar a célula e usar “Paste Special” com a opção “Format”.

5
5
5
2010-02-03 17:31:42 +0000

Encontrei isto recentemente no Excel 2007 e acabei por usar a função ‘TRUNC’ nas células de valor:

value =TRUNC(B5,1)
      0 0
      5 5
    5.4 5.4
  65.43 65.4
765.432 765.4

Trabalhei exactamente da forma que eu queria…

2
2
2
2012-03-01 20:57:08 +0000

Lembre-se que em Reporting Services, também pode escrever uma expressão para a formatação de números. Na minha situação, utilizei

iif(floor(Fields!numericFieldName.Value)=Fields!numericFieldName.Value,"0","0.##")

como expressão para a formatação numérica. Isto produziu um ficheiro Excel com dois formatos de células, seleccionados pelo facto de o valor ser ou não um número inteiro.

1
1
1
2018-02-12 01:45:01 +0000

A minha resposta remove o ponto decimal E Remove o valor

em formatação condicional de escrita:

General;#;;@

Isto deve fazer o truque.

1
1
1
2013-12-04 16:57:19 +0000

Isto não tem de ser tão complicado - pode ser feito exclusivamente com Formatação Condicionada. Eu tenho o Excel 2010, por isso isto pode não funcionar para versões anteriores.

  1. formatar as células para serem Gerais. O número de casas decimais para alguns números pode ser muito elevado.
  2. Destacar uma célula e clicar em Formatação Condicional. Clique em Nova Regra, depois em “Usar uma Fórmula”.
  3. Use a fórmula =(B1-INT(B1))>0 (onde B1 é a célula que está a formatar)
  4. Clique no botão Formatar e escolha “Personalizar”. Insira [=0]0;.## no campo Tipo.
  5. Carregue em Enter várias vezes.
  6. Clique novamente em Formatação Condicional, clique em Gerir Regras, e Editar a regra que acabou de criar. Altere o intervalo no campo “Aplica-se a” para cobrir o intervalo que pretende cobrir.

Tudo feito.

0
0
0
2014-01-17 17:34:13 +0000

Esta parece ser a forma mais simples de ter uma Decimal mostrada quando existem números fracionários - e nenhuma Decimal mostrada para números inteiros:

=TEXT(ROUND(Base_Number,Max_Decimal_Places),"general")

ou com referências de células:

=TEXT(ROUND(A1,2),"general")

15 = 15 9,23432234 = 9,23

0
0
0
2013-06-04 11:16:43 +0000
B1=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.##"))
C1=IF(ROUND(B1,2)=INT(B1),TEXT(B1,"0"),TEXT(B1,"0.##"))

Acabaram-se os pontos decimais órfãos.