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?

maas
fuente
¿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
Rachel Hettinger
fuente
¿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