
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 ( SUM
normalmente). 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ÃOahyphen
; pode ser umem dash
Minhas desculpas pela confusão... Agora estou me perguntando que tipo de programadores podem usar anem dash
em vez de aminus sign/hyphen
em 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 chars
valor, 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:
- Extraia o valor após
$
o sinal, não use posição fixa - 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 Z1
e 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?