![O que a fórmula TEXT formata como "?" fazer?](https://rvso.com/image/1585765/O%20que%20a%20f%C3%B3rmula%20TEXT%20formata%20como%20%22%3F%22%20fazer%3F.png)
O que significa formatar texto como "?" realmente faz? Tudo o que sei é que aparecerá uma célula em branco quando o valor avaliado for 0.
=TEXT(IF(condition,1,0),"?")
Responder1
Além de ser usado para frações, é usado para deixar um espaço para zeros não significativos à esquerda e à direita da vírgula decimal. Isso é útil se você estiver usando uma fonte fixa e quiser alinhar os decimais, mas não mostrar os 0, como faria com um formato de0000.0000
Por exemplo, com as células abaixo formatadas como ????.????
e Courier New
para a fonte, veja como os decimais estão alinhados, mas os zeros à esquerda e à direita não são exibidos.
Responder2
Uma pergunta muito interessante. Fiz alguns testes e verifiquei o que representa para poder responder a parte what does it do
porém não consigo responder com certeza a why does it exist
parte.
Dê uma olhada em meus dados de amostra:
Ambas as linhas B e C parecem corresponder, o que mostra que:
=TEXT(value,"?")
é equivalente a=(IF(ROUND(value,0)=0," ",ROUND(value,0))
Tenha em mente, embora possa ser óbvio, que TEXT() sempre converterá os dados em texto, e não será mais numérico.
Meu palpite sobre por que ele existe é pela =TEXT(value,"?/?")
opção de formatação. Nesta opção você deseja exibir uma fração apenas se o resultado não estiver em branco. Se algum dos pontos de interrogação estiver em branco, ele retornará um espaço.
Responder3
Por que, considere o que o "?" destina-se a fazer. O objetivo é fazer exatamente o que Ron Rosenfeld diz:
1) Permita que um espaço de caracteres seja mantido independentemente da saída. Portanto, o uso mais comum é "criar uma guia decimal" análoga à "coisa real" no Word, para que todas as suas entradas sejam alinhadas em seus decimais e exibam quantas casas decimais você desejar.
2) Como um desejo comum ao fazer 1), o uso mais comum é não ter zeros preenchendo o valor exibido. (Caso contrário, você usaria, para o exemplo, ".0000" para o ponto decimal e o material à direita dele (e qualquer coisa para os dígitos não decimais).) Portanto, a função secundária é suprimir quaisquer zeros à direita.
Se feito à direita da vírgula, o resultado será exatamente como Ron Rosenfeld mostra. Mas e se você colocar um à esquerda da vírgula? Depende dos detalhes disso, e um caso interessante, instrutivo aqui, é "?" com uma entrada para TEXT() de, digamos, 12,95:
=TEXT( 12.95, "?" )
o que resulta em "13", nem mais, nem menos. Ele não pode mostrar nada à direita da vírgula decimal, pois não há nada no formato referente à vírgula decimal ou nada à sua direita. Então TEXT() tem que arredondar o resultado para o que é arredondado em 0 casas decimais, exatamente como Eric F mostra.
Então agora considere fazer isso E ter um valor que será arredondado para 0:
=TEXT( 0.49, "?" )
O que acontece é que TEXT() tem que arredondá-lo para 1 casa à esquerda do decimal: nada à direita dele e isso é 0. O formato suprime zeros insignificantes (ao final do resultado). Como essa sequência de ("0") "tem um zero no final" (e no começo e no meio, pode-se ser bastante metafísico aqui), esse zero é suprimido. Como é a ÚNICA coisa presente e sua exibição é suprimida, você fica com "". Apenas um espaço em branco.
A propósito, eu digo “exibe” algumas vezes, mas não é apenas exibido como tal, é exatamente isso. Portanto, o "13" acima é na verdade 13, e não 12,95 disfarçado.