Notação científica no Microsoft Word

1

Ao fazer o cálculo do computador, a notação científica é representada principalmente como 1.23e-12. Na escrita científica, isso é desaprovado e usamos multiplicação explícita e sobrescritos para poderes como 1.23 × 10⁻¹². Isso leva a uma barreira entre, por exemplo, o Excel e o Word, onde não podemos mais simplesmente copiar-colar ou incorporar melhor os resultados. Isso, por sua vez, leva a erros de digitação evitáveis em nossos documentos.

Existe uma maneira de automatizar esse processo? No LaTeX, por exemplo, existem vários pacotes (por exemplo, siunitx ) que definem macros que automatizam menos a conversão, para que você possa digitar \num{1.23e-12} para obter o melhor resultado de composição. Idealmente, gostaria de evitar todas as etapas manuais para obter do número em uma planilha do Excel para a versão typeset do mesmo número em um documento do Word, algo como definir \renewcommand{\myimportantresult}{\num{1.23e-12}} em LaTeX e, em seguida, usando a macro em todos os lugares em vez do número .

Eu encontrei este método para reformatar a notação científica, que se resume a usar a seguinte fórmula (em A2 para converter A1):

=LEFT(TEXT(A1;"0.00E+0");3) & "×10^" & RIGHT(TEXT(A1;"0.00E+0");3)

Isso é próximo e resulta em 1,2 × 10 ^ -12, mas eu não sei como adicionar sobrescritos a apenas partes de uma célula que é calculada por uma fórmula. Além disso, complica a planilha por ter essas células "extras" apenas para exibição.

Como uma dificuldade adicional, o método tentei vincular um valor no Excel para Word (colar link) não parece funcionar na versão para Mac do office 2016 que estou usando.

    
por chthonicdaemon 06.11.2016 / 07:35

2 respostas

4

Você pode usar localizar e substituir no Word. Você precisará usar uma abordagem em duas etapas:

  1. copia números do excel no formato padrão ( 1.234E+56 )

  • identifica números com notação científica:
    • pressione CTRL + H, mais e selecione "usar curingas"
    • em "localizar o que" digite ([0-9.]@)E([-+0-9]@)([!0-9])
    • em "substituir por" insira ####
      (ou use quaisquer outros caracteres especiais que não ocorram nos seus documentos)
    • pressione para substituir todos
  • faça sobrescrito:
    • "encontrar o que": ##([-+0-9]@)##
    • "substituir para":
    • pressione format - font, selecione sobrescrito
  •     
    por 07.11.2016 / 13:25
    -1
    Sub scientificnotation()
        ' put in general form
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = "([0-9.]@)E([-+0-9]@)([!0-9])"
            .Replacement.Text = "##×10####"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        ' take out leading 0 exponents
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = "##+0"
            .Replacement.Text = "##+"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        ' take out + exponents
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = "##+"
            .Replacement.Text = "##"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
      ' take out leading 0 exponents for negative numbers
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = "##-0"
            .Replacement.Text = "##-"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        ' free up ×10
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = "##×10##"
            .Replacement.Text = "×10##"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        ' elevate exponents
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find.Replacement.Font
            .Superscript = True
            .Subscript = False
        End With
        With Selection.Find
            .Text = "##([-+0-9]@)##"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    
    End Sub
    
        
    por 16.04.2018 / 20:53