Prepend = para cada célula na Coluna do Excel para forçar o cálculo da fração

0

Tenho várias células do Excel no formato 22/7, 355/113, 3927/1250 e assim por diante.

Como prefixar = para cada célula para que o valor numérico real seja computado?

Usando a concatenação de texto conforme mostrado na pergunta: Inserir texto no início de cada célula em uma coluna não funciona (o texto é adicionado).

Eu tentei alterar a formatação de células (numérica, científica, etc.) sem melhorias.

Além disso, se A1 for 22/7, fazer B1 = VALUE (A1) também não funcionar, receberei #VALUE!

Então, como forçar o cálculo de valores de cada célula?

    
por Aniti 27.09.2017 / 10:21

3 respostas

1

Digamos que tenhamos dados como:

ExecutandoestamacrocurtadoVBA:

SubMakeEquation()DimNAsLong,iAsLongN=Cells(Rows.Count,"A").End(xlUp).Row

    For i = 1 To N
        With Cells(i, 1)
            .Formula = "=(" & .Value & ")"
        End With
    Next i
End Sub

produzirá:

    
por 27.09.2017 / 14:48
1

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 Example.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()
    
por 27.09.2017 / 13:35
1

A função de planilha a seguir faz exatamente o que você pediu:

=LEFT(A1,FIND("/",A1)-1)/RIGHT(A1,LENGTH(A1)-FIND("/";A1))

O que ele faz é encontrar a barra na fração e então dividir a string na parte antes da barra e a parte atrás da barra. Em seguida, divide as duas partes para chegar a um decimal.

    
por 28.09.2017 / 13:21