Excel: como colocar um ponto literal em um formato de célula

1

Sempre que eu colocar um caractere de ponto em um formato de célula personalizado, o Excel o interpretará como se eu quisesse um separador decimal nesse local do formato. O problema é que o separador decimal é alterado com a localidade. Eu na verdade só quero um ponto.

Veja um exemplo de formato que não funciona:

hh:mm:ss.000

(não funciona porque se a localidade usar qualquer outra coisa além de um ponto como um separador decimal, você verá algo como 22:31:34,854 em seu valor formatado)

Eu tentei algo como

hh:mm:ss\.000

para fazer o Excel entender que eu realmente quero um ponto. No entanto, o Excel 2010 se recusa a aceitar isso como um formato válido. (Eu li em algum lugar que o \ é o caminho para escapar de um caractere em uma string de formato Excel)

ATUALIZAÇÃO (E UM TIPO DE RESPOSTA)

A documentação oficial da Microsoft diz que você pode obter um formato para imprimir um caractere que, de outra forma, seria interpretado como um meta-caractere colocando o caractere entre aspas duplas ou escapando com uma barra invertida. Por exemplo, o seguinte formato #.##0\. formatará 1234 como 1.234. em uma localidade dos EUA. Embora o exemplo seja um absurdo, isso prova que o escape do caractere de período realmente funciona.

Então, por que não funciona ao criar um formato de timestamp com milissegundos?

A resposta está no modo como a Microsoft projetou os especificadores de formato. Esses metacaracteres (como 0 (zero)) têm interpretações diferentes dependendo do ambiente. Em algum contexto 0 significa ter sempre um dígito naquele local. Portanto, colocar três zeros em um formato, como em #0.000 , significa formatar 12 as 12.000 . No entanto, quando os três zeros são colocados após um formato de hora, eles são interpretados como significando "milissegundos". Se escaparmos do período imediatamente anterior aos três zeros, então os três zeros não estarão mais "próximos" dos especificadores de formato de hora e o Excel ficará confuso e não poderá mais determinar se queremos dizer "milissegundos" ou espaço reservado para dígito. Por isso, não tem outra opção senão recusar o formato. Pelo menos esta é a minha interpretação do porque não funciona.

Essa ambigüidade no formato meta chars é realmente a raiz de todo mal. Se você comparar com várias linguagens de programação, nunca vi antes que meta-caracteres de string de formato possam ter interpretações diferentes dependendo do contexto. Nesse caso, isso significa que não há como o Excel criar um formato de hora em milissegundos da maneira que deveria ser. Você simplesmente terá que aceitar que o caractere de período pode misteriosamente mudar para , às vezes (dependendo das configurações de localidade do usuário).

    
por peterh 24.08.2015 / 20:30

1 resposta

0

Eu tenho medo que você tenha que usar o formato de célula "Texto" e usar uma fórmula que produza um valor de texto com os separadores necessários

=LEFT(A1;2) & ":" & MID(A1;4;2) & ":" & MID(A1;7;2) & "." & RIGHT(A1;3)

O Excel não processa milissegundos em formatos nomeados ...

    
por 26.08.2015 / 13:23