quero aplicar a formula
=TEXTO(A1,SE(A1-INT(A1)=0,"0","#.####"))
para células existentes com números sem copiar e colar.
A planilha existente já é grande e preenchida e não quero criar outra cópia dela e depois lidar com a remoção da duplicata.
Eu tentei usar colar especial. E há a pergunta semelhante no stackoverflow: https://stackoverflow.com/questions/21560480/excel-apply-formula-to-existing-cells-value-without-copy-paste mas que usa operações aritméticas e este algoritmo/fórmula I Estou aplicando é mais complicado. Eu pedi Reduzir Algarismos Significativos no Excel .
Em https://stackoverflow.com/questions/58507643/excel-apply-complicated-formula-to-existing-cells-value-without-copy-paste?noredirect=1#comment103343484_58507643 , ouvi dizer que há uma maneira de fazer isso usando células de formato, personalizadas, especificando um código de formato de número, algo que se parece com
,##0_);(#,##0).
O problema é que não estou familiarizado com a linguagem dos códigos de formato numérico.
Se você quiser apenas resolver seu problema original:
Formate toda a planilha do Excel para que haja apenas 3 dígitos após as casas decimais
a segunda resposta tem um método que não altera nenhum valor real e pode, portanto, ser facilmente aplicado a todas as células sem nenhum treinamento especial.
Ele também fornece strings precisas e copiáveis para os formatos de data sugeridos, para que possam ser colados onde necessário.
Sua segunda pergunta produziu essa abordagem de mudança de texto. Se você fizer isso, os dados subjacentes serão alterados para texto. Você parecia feliz com isso, então... MAS não pode ser feito como você deseja.
O problema é que você não pode usar algo como formatação, ou mesmo Colar | Especial (se você fosse capaz de copiar e colar) para alterar algo para se encaixar e ser acionado por uma fórmula. Não pode ser feito no Excel.
Você PODE fazer pelo menos duas coisas para obter o efeito desejado, embora a segunda seja uma técnica de copiar e colar. (Infelizmente, o outro usa VBA e se eu fosse um apostador, sua falta de familiaridade com a formatação de datas, disse nesta pergunta, me faria pensar que VBA não é algo que você usa com frequência.)
1) Escreva uma macro que verifique o fim dos dados para que não precise trabalhar em bilhões de células sem nada quando isso puder ser conhecido e evitado. Em seguida, comece nessa extremidade e trabalhe de volta ao longo da linha (ou suba essa coluna para começar, embora a linha seja mais fácil), basicamente primeiro vendo se a célula está em branco e, se não, definindo uma variável igual ao conteúdo original da célula e, em seguida, colocando o conteúdo em uma string feita com a fórmula que você tem aqui e, em seguida, definindo o conteúdo da célula para ser uma fórmula cujo texto é essa string. Em seguida, mova-o para a esquerda de uma célula (isso aconteceria imediatamente após descobrir que está em branco) e faça tudo de novo. Quando terminar a coluna A para aquela linha, volte para a coluna original, suba uma linha e continue transportando.
Ele faria cada alteração uma de cada vez, quase sem esforço de sua parte, em vez de tentar alterar 43.000.000 (ou quantos) de uma vez, como uma abordagem do tipo copiar e colar pode fazer, o que pode sobrecarregar sua máquina (presumo que preocupação de sobrecarga é a razão pela qual você não deseja copiar e colar nada.)
2) Esta é a abordagem de copiar e colar. Talvez essa não fosse a preocupação (sobrecarregar, sufocar o Excel, talvez perder seu arquivo), mas você está pensando que teria que fazer alguns milhões de cópias e colagens manualmente. Mas se você quiser ou puder, crie uma nova planilha, encontre o final dos dados na planilha atual (pressione
Ctrl-End
) e anote o endereço da célula, vá para a nova planilha, sua célula A1, digite esta fórmula e quando precisar digite o endereço da célula A1, use o mouse para clicar na célula A1 da planilha atual (para evitar digitar nomes de planilhas e assim por diante) e salve a célula comENTER
.Agora copie-o e vá para o endereço da célula nesta nova planilha que corresponda ao final dos dados na outra planilha. Pressione
Shift-Ctrl-Home
para realçar tudo até A1. Copie essa região. (Se o Excel hesitar nisso, você precisará fazer isso em partes.) Volte para a célula A1 da planilha original e escolha Colar|Especial|Valores por qualquer uma das 5-6 maneiras de fazer isso de sua preferência.Feito.
Mas se você quiser um método mais rápido e fácil que mantenha os dados exatamente como estão agora, apenas mude a aparência deles, confira a resposta que dei à sua pergunta anterior.