Convertir un campo a un valor numérico

Tengo campos tipo:

0,250 KN

2.042,950 KN

¿Hay alguna fórmula para convertirlo en un valor?

Respuesta

Es un problema de interactuación entre la configuración regional y el natural de Access (ingles)

Solo se necesita eliminar los puntos (separadores de miles) y sustituir la coma por el punto (separador decimal)

El resto lo hace la función VAL, dos cuadros de texto y una función que hace el trabajo, la función:

Public Function Evaluador(xxxx As String) As Double
xxxx = Replace(xxxx, ".", "")
xxxx = Replace(xxxx, ",", ".")
Evaluador = Val(xxxx)
End Function

1 respuesta más de otro experto

Respuesta

Eliminar el texto no numérico: Primero, necesita eliminar las letras y el espacio al final (" KN") para dejar solo el número.

Reemplazar la coma por punto: En algunos contextos de programación, el separador decimal es el punto (.) En lugar de la coma (,). Por lo tanto, si sus números están en formato europeo con comas como separador decimal, necesitará reemplazar las comas por puntos.

Convertir a número: Finalmente, convierte la cadena resultante en un valor numérico. Esta función le sirve

Function ConvertirANumero(campoTexto As String) As Double
    Dim numeroTexto As String
    Dim valorNumerico As Double
    ' Eliminar " KN" al final del texto
    numeroTexto = Left(campoTexto, Len(campoTexto) - 3)
    ' Reemplazar la coma (,) por punto (.) si es necesario
    numeroTexto = Replace(numeroTexto, ",", ".")
    ' Convertir el texto a un valor numérico
    valorNumerico = CDbl(numeroTexto)
    ' Devolver el valor numérico
    ConvertirANumero = valorNumerico
End Function

Ejemplo de llamada

¿

? ConvertirANumero("2.042,950 KN") retorna 2042950

Explicación del código:

Function ConvertirANumero(campoTexto As String) As Double: Define una función llamada ConvertirANumero que acepta un parámetro campoTexto de tipo String y devuelve un valor numérico (Double).

NumeroTexto = Left(campoTexto, Len(campoTexto) - 3): Utiliza la función Left para obtener una parte de campoTexto, desde el inicio hasta Len(campoTexto) - 3. Esto elimina los últimos 3 caracteres, que corresponden a " KN".

NumeroTexto = Replace(numeroTexto, ",", "."): Utiliza la función Replace para reemplazar todas las comas (,) en numeroTexto por puntos (.). Esto es necesario si tus números utilizan comas como separador decimal.

ValorNumerico = CDbl(numeroTexto): Utiliza la función CDbl para convertir numeroTexto en un valor numérico de tipo Double.

ConvertirANumero = valorNumerico: Devuelve el valor numérico calculado por la función

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas