Tenho várias células do Excel no formato 22/7, 355/113, 3927/1250 e assim por diante.
Como acrescento = a cada célula para que o valor numérico real seja calculado?
Usando concatenação de texto conforme mostrado na pergunta:Insira texto no início de cada célula em uma colunanão funciona (o texto é adicionado).
Tentei alterar a formatação das células (numérica, científica, etc.) sem melhora.
Além disso, se A1 for 22/7, então fazer B1 =VALUE(A1) também não funciona, recebo #VALUE!
Então, como forçar o cálculo dos valores de cada célula?
Responder1
Responder2
Se você souber usar o Powershell, poderá usá-lo para alterar o conteúdo da célula. Para valores nas células A1 a A3 na planilha1 em uma planilha do Excel chamada Exemplo.xlsx usando o seguinte script
$FilePath = 'C:\Users\Username\Documents\Example.xlsx'
# Instantiate the COM object
$Excel = New-Object -ComObject Excel.Application
$Workbook = $Excel.Workbooks.Open($FilePath)
$Sheet = $Excel.WorkSheets.item("sheet1")
$Sheet.activate()
$Sheet.Range('A1:A3').NumberFormat=""
foreach ($Cell in $Sheet.Range('A1:A3').Cells) {
$Cell.Value2 = '=' + $Cell.Value2
}
$WorkBook.Save()
$WorkBook.Close()
$Excel.Quit()
Responder3
A seguinte função de planilha faz exatamente como você pediu:
=LEFT(A1,FIND("/",A1)-1)/RIGHT(A1,LENGTH(A1)-FIND("/";A1))
O que ele faz é encontrar a barra na fração e depois dividir a string na parte antes da barra e na parte atrás da barra. Em seguida, ele divide as duas partes para chegar a um decimal.
Responder4
O seguinte é semelhante ao primeiro no link dos comentários. Porém, é "mais limpo", pois a resposta dada então (2010) foi baseada em aspectos do Excel que não existem mais.
Presumo que você deseja substituir os dados pelos resultados calculados. Se sim, faça o seguinte, mas se não, faça com que os resultados acabem em outro lugar que seja conveniente.
Insira uma coluna auxiliar e insira a seguinte fórmula (em B1, digamos):
= "=" & A1
O Excel não faz mais a coisa abominável de considerar um '
caractere inicial como um caractere de formatação como 1-2-3 costumava fazer, mas não há necessidade de usá-lo de qualquer maneira, pois o Excel pode iniciar uma string de texto com "=". Então esta é a coisa mais simples que você pode fazer, na verdade.
Preencha ou copie/cole conforme necessário. Destaque todas as células da fórmula e copie. Em seguida, vá para a célula A1 e Paste|Special|Values
coloque os RESULTADOS da fórmula acima (NÃO as fórmulas) "em cima" dos dados iniciais. Em seguida, exclua a coluna auxiliar. Agora você terá coisas como:
=22/7
com ele tratado como texto, mesmo que você altere o formato para um formato numérico.
Destaque tudo novamente (ou faça isso imediatamente após P|S|M e exclua a coluna auxiliar mais tarde) e use Find and Replace
para procurar por "=" e substitua por "="...
Sim, encontre o sinal de igual e substitua-o por ele mesmo. O Excel fica feliz em fazer isso e, ao contrário de muitas outras técnicas, não fica considerando isso como texto depois de fazê-lo. Se quiser saber sempre qual era o material original, deixe assim. Examinar a célula permite que você sempre veja esta, por exemplo, iniciada com "22/7" porque ainda está lá depois de "=". Se não precisar, destaque todos, copie-os e P|S|V mais uma vez para deixar apenas os resultados dos cálculos no lugar.
Tudo feito.
(Aliás, essa é uma daquelas situações (estranhamente, NUNCA falamos), não é comum, mas surge para nos surpreender, em que você não consegue Paste|Special|Multiply
a saída da concatenação por 1 e vê tudo mudar para valores. permanecerá como "=22/7" e na borda esquerda da célula, como texto. Você teria que alterar manualmente cada um com F2-Enter
.)
Dito tudo isso, uma pequena macro bonita é o “padrão ouro”. Rápido, fácil, você pode atribuí-lo a um botão para uso em novo material, está tudo bem. Contanto que você tenha permissão para usá-los. Mas isso parece uma tarefa doméstica para você, o criador da planilha, e não algo que os usuários fariam depois de criar a planilha. Então você pensaria que a maioria das organizações seria boa com isso. O aluno de Gary parece bastante simples. O de Antônio parece mais envolvente, mas também bastante direto.
E... para não causar problemas... mas você sempre pode adicionar uma macro para alguma tarefa doméstica como esta enquanto estiver com a planilha aberta, usá-la e excluí-la ou apenas salvá-la no formato .xlsx para Excel. tira a macro para você. Apenas dizendo'...
Pela pergunta vinculada à qual mencionei, EVALUATE()
seria divertido de usar. Mas é mais problemático porque você precisa fazer várias coisas que são um pouco mais difíceis do que a abordagem acima.
Eu não recomendaria a abordagem "desmontar e montar novamente" que Michthan oferece simplesmente porque seus dados podem estar mais envolvidos do que literalmente tudo sendo dividido e usando a barra para mostrá-lo. Se assim for, agora ou no futuro, você terá que expandir o que essa fórmula procura para lidar com todas as situações possíveis. Nesta situação, talvez não seja o menor problema, mas se existe uma solução fácil que evita tudo isso, por que não usá-la? Dito isto, essa abordagem também funcionará e poderá ser necessária dependendo de como seus dados poderão ser entregues a você no futuro.
(E como essas respostas são para todos se beneficiarem, outra pessoa pode já ter um conjunto de dados mais complexo e achar essa abordagem útil, embora repleta de carga de trabalho para cobrir todas as bases.)