Cómo reemplazar letras en una celda con números definidos de una tabla separada


0

Tengo una celda que tiene números y letras mixtos (ej. AA12CC45WR) Y son aleatorios.

En otra hoja, tengo una tabla que tiene el equivalente para cada letra como (celdas A1, B1)

A=1
C=25
W=66
R=77 

para las letras ABC hasta Z

La solución debería ser 11122525456677

¿Cómo genero una función para reemplazar todas las letras con los números definidos en la otra hoja?


¿El texto a decodificar siempre tiene 10 caracteres?
Rachel Hettinger

¿ A1Contiene 1o la cadena A=1?
jonsca

por lo general el texto será de 22 dígitos
Maas

Para más aclaraciones, la celda A1: contiene A y la celda B1 contiene el valor que es 1
maas

¿Estás abierto a usar una función VBA personalizada?
Rachel Hettinger

Respuestas:


1

Aquí hay una función que hará la decodificación. Coloque esto en un módulo y actualice la referencia de Rango según sea necesario. Si la celda A1tiene un valor de "código" original, ingrese la fórmula: =Decode(A1)en otra celda para obtener el valor "decodificado".

Public Function Decode(Code As String) As String
    Dim iIdx As Integer
    Dim sChar As String
    Dim sResult As String
    For iIdx = 1 To Len(Code)
        sChar = UCase$(Mid$(Code, iIdx, 1))
        If Asc(sChar) >= 65 And Asc(sChar) <= 90 Then
            sChar = WorksheetFunction.VLookup(sChar, Worksheets("Sheet2").Range("A1:B26"), 2, False)
        End If
        sResult = sResult & sChar
    Next iIdx
    Decode = sResult
End Function

¿Dónde debería colocarlo?
maas

Coloque el código en un módulo normal (no un módulo de clase que esté vinculado a una hoja): vaya al Editor VB, al menú Insertar y haga clic en Módulo.
Rachel Hettinger
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.