Converta x ug / kg em x mg / kg macro do MS Excel 2007

1

Eu tenho que interpretar dados para relatórios científicos. Nós relatamos os dados todos nas mesmas unidades, no entanto, o laboratório envia os dados em diferentes unidades.

Eu gostaria de saber como fazer uma macro que você pode aplicar a uma seleção de células ou colunas para converter o resultado (divida o número por 1000).

A parte complicada disso é que os números são geralmente apresentados como "> 5". Nesse caso, eu precisaria que a macro mudasse para "> 0,005".

Como meus dados geralmente contêm mais de 50 colunas, ele realmente precisa ser uma macro para que eu possa destacar uma coluna e clicar na macro. Em seguida, substituiria o conteúdo das células pelas figuras revisadas.

    
por James 07.12.2010 / 19:15

1 resposta

2

Se houver apenas um caractere lá, então, para o valor em A1 , a seguinte fórmula fará o seguinte:

=IF( ISNUMBER(A1), A1/1000, LEFT(A1,1) & MID(A1,2,LEN(A1)-1)/1000 )

Ou seja: se for um número simples, basta dividir por 1.000 usando A1/1000 . Caso contrário, copie o primeiro caractere usando LEFT(A1, 1) e use & para concatenar os caracteres restantes da posição 2 até o final dado por MID(A1, 2, LEN(A1)-1) e dividido por 1.000.

(Paraverosdecimaisapósdividirpor1.000,podesernecessáriodefiniraformataçãodascélulasderesultadospararealmentemostrarosdecimais.Senão,então0.004podeaparecercomo0.)

Eunãopossotestarissocomoumamacro(oOpenOffice.orgtemumasintaxediferente),mastalvezissotefaçacomeçar.Totalmentebaseadoemalguns Google-fu rápido para traduzir o acima, porém:

Function DivideByThousand(s)
     If Application.WorksheetFunction.IsNumber(s) Then
         DivideByThousand = s / 1000
     Else
         DivideByThousand = Left(s, 1) & Mid(s, 2, Len(s)-1)/1000
     End If
End Function

Sub RecalculateSelection
    Dim cell As Excel.Range
    For Each cell In Selection
        cell.Value = DivideByThousand(cell.Value)
    Next cell
End Sub
    
por 07.12.2010 / 20:00