Excel - Macro o función para hacer que se resuelvan solo los valores absolutos

 
Vista:
sin imagen de perfil
Val: 26
Ha aumentado su posición en 88 puestos en Excel (en relación al último mes)
Gráfica de Excel

Macro o función para hacer que se resuelvan solo los valores absolutos

Publicado por wernser412 (11 intervenciones) el 27/06/2021 22:34:25
Tengo una cadena de texto en una celda:
A1 = 5+4 -|16-18|+ |18-18|+ |20-18| + 3 * 2

Tengo varias como eso.

Macro o función para hacer que se resuelvan solo los valores absolutos:

A3 = 5+4 -2+ 0+ 2 + 3 * 2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro o función para hacer que se resuelvan solo los valores absolutos

Publicado por Antoni Masana (1846 intervenciones) el 28/06/2021 15:46:06
Si en lugar de las barras pones los paréntesis se resuelven solas, hasta Excel las sabe resolver.

Sube un libro de muestra y ejemplo de lo que quieres.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 26
Ha aumentado su posición en 88 puestos en Excel (en relación al último mes)
Gráfica de Excel

Macro o función para hacer que se resuelvan solo los valores absolutos

Publicado por wernser412 (11 intervenciones) el 29/06/2021 19:29:02
Bueno te envio un libro de muestra y ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro o función para hacer que se resuelvan solo los valores absolutos

Publicado por Antoni Masana (1846 intervenciones) el 29/06/2021 21:03:28
He realizado esta función:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Option Explicit
 
Function valores_absolutos(texto As String) As String
    Dim Resultado As String, SW As Boolean, a As Integer, b As Integer, _
        Char As String, Num1 As String, Num2 As String, _
        Operacion As String, Signo As Byte
 
    SW = False
    For a = 1 To Len(texto)
        Char = Mid$(texto, a, 1)
        If Char = "|" Then
            If SW = False Then
                SW = True
                Char = ""
            Else
                SW = False
                Signo = 0
                Num1 = ""
                Num2 = ""
                For b = 1 To Len(Operacion)
                    If InStr("0123456789", Mid$(Operacion, b, 1)) > 0 Then
                        If Signo = 0 Then
                            Num1 = Num1 + Mid$(Operacion, b, 1)
                        Else
                            Num2 = Num2 + Mid$(Operacion, b, 1)
                        End If
                    Else
                        Signo = InStr("+-", Mid$(Operacion, b, 1))
                    End If
                Next
                Operacion = ""
 
                If Signo = 1 Then
                    Char = Str(Abs(Val(Num1) + Val(Num2)))
                Else
                    Char = Str(Abs(Val(Num1) - Val(Num2)))
                End If
            End If
        End If
 
        If SW Then
            Operacion = Operacion + Char
        Else
            Resultado = Resultado + Char
        End If
    Next
    valores_absolutos = Resultado
End Function

Adjunto libro con la funcion.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 26
Ha aumentado su posición en 88 puestos en Excel (en relación al último mes)
Gráfica de Excel

Macro o función para hacer que se resuelvan solo los valores absolutos

Publicado por wernser412 (11 intervenciones) el 01/07/2021 01:42:10
Gracias me salvaste un monton, aun tengo problema de por que no se suman los valores absolutos con numeros decimales : |20-18,4| cuando los hago con calculadora me sale otro numero, creo que es por el excel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro o función para hacer que se resuelvan solo los valores absolutos

Publicado por Antoni Masana (1846 intervenciones) el 01/07/2021 07:43:32
Es por la función.
Esta línea solo filtra números:

1
If InStr("0123456789", Mid$(Operacion, b, 1)) > 0 Then

Pero hay más, debes cambiar la coma por un punto.
Si me hubieses envíaro una muestra más amplia no tendrías estos problemas.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar