Formata números em diferentes localidades (com ponto final em vez de vírgula como separador decimal)

3

Estou usando o Excel 2013 em uma versão alemã do Windows 8.1. Quando formato um número como número , em células ou em um diagrama, ele é exibido com uma vírgula como sinal decimal (como "3,1415"). Gostaria de exibir o número com um período, como no idioma inglês (EUA).

Eu tentei um formato numérico com uma localidade explícita como

[$-409]0.0;@

mas isso não funcionou. Ele funciona para datas, embora ( [$-409]MMM JJ;@ ).

Como posso formatar números com um período? Eu estou procurando a solução mais não invasiva, então mudar a localidade do meu sistema não é uma opção. Alterar o idioma em uma planilha ou planilha seria OK, mas eu prefiro algo que funciona em células individuais ou elementos de diagrama. Eu não quero mudar os dados, então a função substitute etc. não funcionará.

    
por jdm 10.03.2014 / 17:15

3 respostas

1

Se você tem uma célula que exibe pi como:

3,1415

Selecione essa célula e execute essa macro pequena:

Sub Reformat()
    Dim st As String
    st = ActiveCell.Text
    st = Chr(34) & Replace(st, ",", ".") & Chr(34)
    ActiveCell.NumberFormat = st & ";;;"
End Sub

O display se tornará:

3.1415
    
por 10.03.2014 / 18:22
1

Como solução alternativa: nas configurações avançadas, você pode escolher usar ou não os separadores do sistema e definir os seus próprios.

    
por 23.04.2015 / 09:45
0

Eu tenho o mesmo problema: o número está no formato "-34,754.27" e eu quero que ele seja traduzido para um número, no idioma inglês, então "-34754,27" ou "-34.754,27"

Estou usando a função NUMBERVALUE de construção:

= NUMBERVALUE (TEXT, DECIMAL_SEPARATOR, GROUP_SEPARATOR)

Isso retornará o número na localidade atual, interpretando o texto de acordo com os separadores que você está fornecendo.

Alternativamente, você pode seguir a rota da força bruta e fazer a busca e a substituição desses separadores por conta própria - o problema com essa abordagem, além de não ser elegante, é que você vai acabar com um texto que precisa traduzir para o número e você retornará para NUMBERVALUE, então é melhor usá-lo em seu lugar e sozinho:

(o teste neste exemplo é [@Suma])

= REPLACE (IFERROR (SUBSTITUIR ([@ Suma], FIND (".", [@ Suma], 1), 1, ""), [@ Suma]), FIND (",", IFERROR (REPLACE ([@Suma], FIND (".", [@ Suma], 1), 1, ""), [@ Suma]), 1), 1, ".")

    
por 04.10.2017 / 10:29