Convertir una cadena de texto con un guión inicial en un número negativo

Convertir una cadena de texto con un guión inicial en un número negativo

¡El corredor en línea que uso debe tener el sitio web más disfuncional del mundo! No proporcionan ninguna función de "exportación", sino que les dicen a sus usuarios que pueden simplemente copiar datos de las tablas representadas en su navegador y pegarlos en Excel. (¡En realidad!)

Sorprendentemente, se puede incitar a Excel (2016, para Mac) a convertir los "números de texto positivos" en números reales que pueden ser operados por funciones numéricas ( SUMnormalmente). Sin embargo, los "números de texto negativos" han desafiado todos los esfuerzos que encontré para convertirlos en un número negativo.

Un "número de texto positivo" cuesta: $123,45
Un "número de texto negativo" es: -$543,21 (tenga en cuenta el carácter de texto inicial hyphen)

EDITAR:
Un "número de texto negativo" cuesta: – $299,55 (descubrí que el carácter principal esNOa hyphen; puede ser unem dash
Mis disculpas por la confusión... Ahora me pregunto qué tipo de programadores podrían usar un em dashen lugar de un minus sign/hyphenen una página web llena de números, pero esa es una pregunta para mi.corredor en línea.

Puedo convertir un "número de texto positivo" en la celda A1 de la siguiente manera:=VALUE(RIGHT(A1,6))

Pero esto no funciona con un "número de texto negativo". Acierta el número, pero pierde el signo negativo. Intenté cambiar el charsvalor, pero eso no ayuda.

También intenté lo siguiente sin éxito:
1. multiplicar por 1
2. texto en columnas
3. formatear celdas...

¿Hay alguna manera de hacer esto, además de volver a ingresar manualmente?

Respuesta1

Creo que he encontrado una solución sencilla. En una de las celdas con el guión em inicial, resalte y copie solo el guión. Usando la función "Buscar y reemplazar" de Excel, pegue el guión en el bloque "Buscar qué", luego escriba el signo menos en el bloque "Reemplazar con". Aplique Reemplazar a todas las celdas que desee convertir.

Respuesta2

Si la celda A1 contienetextoes decir, en el formato "$123,45" o "-$543,21", puedes utilizar la siguiente fórmula para obtener el valor numérico.

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

Si el texto comienza con "-", obtendrá el valor de todo lo que esté después de "-" y lo hará negativo.

Respuesta3

Yo lo recomiendo:

  1. Extraiga el valor después $del signo, no utilice una posición fija
  2. Verifique el signo de valor marcando un símbolo inmediatamente antes $del signo.

Entonces la fórmula puede 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)))

dónde

"<dash><hyphen>"- un literal con posibles signos negativos (reemplace los marcadores de posición con los caracteres adecuados en cualquier orden, de modo que obtenga un literal de 2 símbolos en el caso que se muestra)

3- el número que es mayor que el número de caracteres en el literal anterior

Esos valores pueden reemplazarse con una referencia a una celda que contenga todos los signos "menos" posibles (como Z1y 1+LENGTH(Z1)respectivamente).


Actualizar. Depurando la fórmula.

Cree una tabla en una hoja de trabajo vacía.

Inserte 4 valores diferentes en la columna A (sin/con espacios iniciales, positivos/negativos).

Inserte las siguientes fórmulas:

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 paquete de fórmulas en las filas 2-4. Compruebe que obtiene un resultado como este:

     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    

Las columnas CI contienen pasos de cálculo únicos y la columna B contiene la fórmula final con todas las sustituciones.

¿Dónde está el error de cálculo?

información relacionada