Si le doy valor a las letras ¿Cómo se hace para darle valor a una palabra?

Necesito transformar la palabra "beba" en números y sumarlos (total=53)..

Respuesta
1

. 30/09/16

Buenas, Jorge

MS Excel cuenta con numerosas y potentes herramientas, a qué negarlo.

Pero, para un pedido como el tuyo, no creo que haya solución nativa.

Afortunadamente, VBA permite crear tu propia función para resolverlo.

Así que desarrollé esta fórmula que, indicándole la celda donde está la palabra, te devuelve la suma de los valores asignados a cada letra.

Accede al Editor de VBA (Atajo: Alt + F11), inserta un módulo y pega el siguiente código:

Function SumaLetras(LaCelda As Range)
Application.Volatile
'---- Variables modificables:
'=== XXXX, modifica estos datos de acuerdo a tu proyecto:  
Hojatabla = "Hoja1"
rangotabla = "B2:C10"
'---- fin Variables
'
'---- inicio de función:  
Resulta = 0
FaltaLetra = False
LaPalabra = Trim(LaCelda.Value)
largo = Len(LaPalabra)
If largo Then
    Set RangBusq = Sheets(Hojatabla).Range(rangotabla)
    For letra = 1 To largo
    LaLetra = Mid(LaPalabra, letra, 1)
    On Error Resume Next
    Busca = Application.WorksheetFunction.VLookup(LaLetra, RangBusq, 2, 0)
    If Err.Number = 0 Then
        Resulta = Resulta + Busca
    Else
        FaltaLetra = True
    End If
    Next
End If
If FaltaLetra Then
    Resulta = "falta letra"
ElseIf Resulta = 0 Then
    Resulta = "-"
End If
SumaLetras = Resulta
Err.Clear
Set RangBusq = Nothing
End Function

Nota que, al principio del código, hay unas variables para que lo adaptes a tu archivo. Por ejemplo que la tabla de valores estuviese en otro rango u hoja.

Además le agregué un par de controles. Mira la siguiente imagen:

Como verás, hace los cálculos que solicitaste pero si faltara alguna letra en la tabla, lo avisa o, si estuviese vacía la celda, coloca un guión.

.

¡Gracias! Más que gracias... excelente

.

Muy bien, Jorge.

Me alegro de que te haya servido.

Interesante desafío.

Abrazo
Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas