Converter uma string de texto com um travessão em um número negativo

Converter uma string de texto com um travessão em um número negativo

O corretor online que uso deve ter o site mais disfuncional do mundo! Eles não fornecem nenhuma função de "exportação", em vez disso informam aos usuários que eles podem simplesmente copiar dados de tabelas renderizadas em seus navegadores e colá-los no Excel. (Realmente!)

Surpreendentemente, o Excel (2016, para Mac) pode ser incitado a converter os "números de texto positivos" em números reais que podem ser operados pelas funções numéricas ( SUMnormalmente). No entanto, os "números de texto negativos" desafiaram todos os esforços que encontrei para serem convertidos em um número negativo.

Um "número de texto positivo" é: $ 123,45
Um "número de texto negativo" é: -$543,21 (observe o caractere de texto inicial hyphen)

EDIT:
Um "número de texto negativo" é: - $ 299,55 (descobri que o personagem principal éNÃOa hyphen; pode ser umem dash
Minhas desculpas pela confusão... Agora estou me perguntando que tipo de programadores podem usar an em dashem vez de a minus sign/hyphenem uma página da web cheia de números, mas isso é uma pergunta para mim.corretor on-line.

Consigo converter um "número de texto positivo" na célula A1 da seguinte maneira:=VALUE(RIGHT(A1,6))

Mas isso não funciona em um “número de texto negativo”. Acerta o número, mas perde o sinal negativo. Tentei alterar o charsvalor, mas isso não ajuda.

Também tentei o seguinte sem sucesso:
1. multiplicar por 1
2. texto para colunas
3. formatar células...

Existe uma maneira de fazer isso - além de inserir novamente manualmente?

Responder1

Acho que encontrei uma solução simples. Em uma das células com o travessão inicial, destaque e copie apenas o travessão. Usando a função “Localizar e Substituir” do Excel, cole o travessão no bloco “Localizar” e digite o sinal de menos no bloco “Substituir por”. Aplique Substituir a todas as células que deseja converter.

Responder2

Se a célula A1 contivertextoque está no formato "$ 123,45" ou "-$ 543,21", você pode usar a seguinte fórmula para obter o valor numérico.

=IF(LEFT(A1,1)="-",0-VALUE(RIGHT(A1,LEN(A1)-1)),VALUE(A1))

Se o texto começar com “-”, obterá o valor de tudo após o “-” e o tornará negativo.

Responder3

Eu recomendaria:

  1. Extraia o valor após $o sinal, não use posição fixa
  2. Verifique o sinal de valor marcando um símbolo imediatamente antes $do sinal.

Então a fórmula pode ser

=IF(IF(ISERROR(FIND(MID(A1,FIND("$",A1)-1,1),"<dash><hyphen>")),3,FIND(MID(A1,FIND("$",A1)-1,1),"<dash><hyphen>"))<3,-MID(A1,FIND("$",A1)+1,LEN(A1)),0+MID(A1,FIND("$",A1)+1,LEN(A1)))

onde

"<dash><hyphen>"- um literal com possíveis sinais negativos (substitua os espaços reservados pelos caracteres apropriados em qualquer ordem, para obter um literal de 2 símbolos no caso mostrado)

3- o número que é maior que o número de caracteres no literal anterior

Esses valores podem ser substituídos por uma referência a uma célula que contém todos os sinais de "menos" possíveis (como Z1e 1+LENGTH(Z1)respectivamente).


Atualizar. Depurando a fórmula.

Crie uma tabela em uma planilha vazia.

Insira 4 valores diferentes na coluna A (sem/com espaços à esquerda, positivo/negativo).

Insira as fórmulas abaixo:

Cell          Formula                      Meaning
-------------------------------------------------------------
$B$1          =IF(I1,-G1,0+G1)             Result
$C$1          =LEN(A1)                     Data length in source
$D$1          =FIND("$",A1)                $ position in source
$E$1          =MID(A1,D1-1,1)              symbol before $
$F$1          =FIND(E1,"<dash><hyphen>")   symbol before $ position in hyphens list
$G$1          =MID(A1,D1+1,C1)             number from source
$H$1          =ISERROR(F1)                 correction when no symbol before $ in list
$I$1          =IF(H1,3,F1)<3               define is a source positive or negative

Copie este pacote de fórmulas para as linhas 2 a 4. Verifique se você obtém uma saída como esta:

     A        B      C   D   E      F       G    H       I
1    $123     123    4   1   #VAL!  #VAL!   123  TRUE    FALSE   
2    -$234    -234   5   2   -      1       234  FALSE   TRUE    
3      $345   345    6   3          #VAL!   345  TRUE    FALSE   
4      -$456  -456   7   4   -      1       456  FALSE   TRUE    

As colunas CI contêm etapas de cálculo únicas e a coluna B contém a fórmula final com todas as substituições.

Onde está a falha no cálculo?

informação relacionada