De Números a Letras en Excel 2007

Alguien que me pueda ayudar estoy haciendo un pequeño formato pero no he podido hacer que un promedio que se genera de calificaciones me lo ponga en letras también si el promedio es 8.5 tenemos que poner OCHO PUNTO CINCO. Estas calificaciones van desde 5 hasta 10 pero cuando el promedio es menor de 5 me debe poner / y en las letras / / / / si alguien me puede orientar

1 respuesta

Respuesta
1

Te mando un archivo que convierte de números a letras, pero no entendí la última parte cuando dices que es menor a 5, por ej. si es 4.5 qué debe poner, o si es 4 qué debe poner.

¿También puede ser 6.7 (seis punto siete) ó 9.3 (nueve punto tres) ó siempre se redondea?

Ya entendí la última parte.

Te anexo la liga con un archivo que te hace el promedio y te pone el promedio con letras.

https://www.dropbox.com/s/ls07i07xjwbawge/cantidad%20con%20letra4.xls

Instrucciones, la columna de promedio en letras, la puedes mover a la izquierda o a la derecha y sigue funcionando.

Pero los registros de nombres deberán iniciar en la fila 2.

Prueba y me comentas.

Saludos. Dam

Si es lo que necesitas.

Hola dam

Antes que nada muchas gracias he visto el archivo pero no puedo accesar al código que es el que me interesa pero al hacer pruebas por ejemplo cuando el promedio es 6 cerrado tiene que ir 6.0 y pones en numero Seis punto Cero, pero al momento que veo tu hoja al agregarle el cero con Aumentar decimal agrega el cero pero en la función de la letra no le agrega el punto Cero. y ese mismo problema tengo con esta función que he tratado de hacer te envío el código para ver que estoy haciendo mal

Function num2let(value)
If (Num2Text(value) = "/") Then
num2let = "/ / / / "
Else
If InStr(value, ".") Then
Dim pos As Integer
pos = InStr(value, ".")
num2let = Num2Text(Left(value, pos - 1)) & " PUNTO " & Num2Text(Right(value, Len(value) - pos))
Else
num2let = Num2Text(value)
End If
End If
End Function
Public Function Num2Text(ByVal value As Double) As String
fracción = value - Int(value)
value = Int(value)
Select Case value
Case 0: Num2Text = "cero"
Case 1: Num2Text = "uno"
Case 2: Num2Text = "dos"
Case 3: Num2Text = "tres"
Case 4: Num2Text = "cuatro"
Case 5: Num2Text = "cinco"
Case 6: Num2Text = "seis"
Case 7: Num2Text = "siete"
Case 8: Num2Text = "ocho"
Case 9: Num2Text = "nueve"
Case 10: Num2Text = "diez"
End Select
Num2Text = UCase(Num2Text)
End Function

Me gustaría enviarte el libro de excel para que lo vas practico y el código lo tengo en un modulo para que lo ejecute =num2let() y asi sea mas facil

En tus ejemplos no especificaste que se tenía que poner SEIS PUNTO CERO

Te mando un forma más sencilla, con una fórmula, para obtener las letras.

=SI(H2="/","////",CONCATENAR(BUSCARV(ENTERO(H2),Hoja2!A:B, 2,0)," PUNTO ", BUSCARV(REDONDEAR((H2-ENTERO(H2))*10,1), Hoja2!A:B, 2,0)))

Tienes que crear una hoja2 con lo siguiente

A B
1 0 CERO
2 1 UNO
3 2 DOS
4 3 TRES
5 4 CUATRO
6 5 CINCO
7 6 SEIS
8 7 SIETE
9 8 OCHO
10 9 nueve
11 10 DIEZ

En la fórmula verás un H2, cámbialo por la columna donde se encuentre el resultado del promedio, por ejemplo, si el promedio está en la columna D, tienes que poner D2, luego arrastras la fórmula a todas las filas que tienes con promedio y te pondrá en automático los nombre, incluyendo el “PUNTO CERO”
Saludos. Dam

P.D. A tu macro le faltaría otra función para que te regrese el texto de la fracción

Prueba la fórmula y si es lo que necesitas.

La verdad me hubiera gustado que fuera en una función para asi fuera oculto todo pero es una solución rápida y funcional de antemano muchas gracias...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas