............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

ORDINAL EN LETRAS A PARTIR DEL NUMERO

Ver el tema anterior Ver el tema siguiente Ir abajo

ORDINAL EN LETRAS A PARTIR DEL NUMERO

Mensaje por GalileoGali el Sáb Mayo 03, 2008 1:23 am

En este caso no se trata de convertir Numero a Letras, sino dar el Ordinal en letras, en lugar de ua macro, se me opcurrio una formula que remite a una tablita. Limitaciones solo lo arme desde 1 a 999, y varias de mis "palabrejas" pueden resultar academicamente cuestionables

[Tienes que estar registrado y conectado para ver este vínculo]

Hoja1

 ABCDEF
21PrimeroDécimocentésimo  
32segundovigésimobicentésimo  
43tercerotrigésimotricentésimo  
54cuartocuadragésimocuadricentésimo  
65quintoquincuagésimoquintucentésimo  
76sextosexagésimosexticentesimo  
87séptimoseptuagésimoseptuacentésimo  
98octavooctogésimooctocentésimo  
109novenononagésimononacentesimo  
110     
12      
13  236bicentésimo trigésimo sexto  
14  108centésimo  octavo  
15  2  segundo  
Spreadsheet Formulas
CellFormula
D13=SI(C13>99;BUSCARV(ENTERO(C13/100);$A$2:$D$11;4;);"")&" "&SI(C13>9;BUSCARV(ENTERO(RESIDUO(C13;100)/10);$A$2:$D$11;3;);"")&" "&SI(C13>1;BUSCARV(--DERECHA(C13;1);$A$2:$D$11;2;);SI(C13>0;"Primer";""))
D14=SI(C14>99;BUSCARV(ENTERO(C14/100);$A$2:$D$11;4;);"")&" "&SI(C14>9;BUSCARV(ENTERO(RESIDUO(C14;100)/10);$A$2:$D$11;3;);"")&" "&SI(C14>1;BUSCARV(--DERECHA(C14;1);$A$2:$D$11;2;);SI(C14>0;"Primer";""))
D15=SI(C15>99;BUSCARV(ENTERO(C15/100);$A$2:$D$11;4;);"")&" "&SI(C15>9;BUSCARV(ENTERO(RESIDUO(C15;100)/10);$A$2:$D$11;3;);"")&" "&SI(C15>1;BUSCARV(--DERECHA(C15;1);$A$2:$D$11;2;);SI(C15>0;"Primer";""))


Excel tables to the web >> [Tienes que estar registrado y conectado para ver este vínculo]

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: ORDINAL EN LETRAS A PARTIR DEL NUMERO

Mensaje por GalileoGali el Dom Mayo 04, 2008 10:46 am

Traigo ahora una UDF publicada por Luis Fernando, de Pereira (Colombia)
Recordemos que debe Ir dentro de un Modulo Standard, puede ser tanto en el Libro donde queramos utilizarla o el Libro Personal.xls, o en algun ADDIN.

Código:
Function Orden(ByVal inValue As Long) As String
Dim Unidades, Decenas, Cientos
Dim n As Long
Dim unit As Long, ten As Long, hund As Long

Unidades = Array("", "Primero", "Segundo", "Tercero", "Cuarto", _
"Quinto", "Sexto", "Séptimo", "Octavo", "Noveno", "Décimo")
Decenas = Array("", "Décimo ", "Vigésimo ", "Trigésimo ", "Cuadragésimo ", _
"Quincuagésimo ", "Sexagésimo ", "Septuagésimo ", "Octogésimo ", "Nonagésimo ")
Cientos = Array("", "Centésimo ", "Ducentésimo ", "Tricentésimo ", "Cuadrigentésimo ", _
"Quingentésimo ", "Sexcentésimo ", "Septigentésimo ", "Octingentésimo ", "Noningentesimo ")
Orden = ""
n = inValue

hund = n \ 100
Orden = Orden & Cientos(hund)

n = n - hund * 100


ten = n \ 10

unit = n - ten * 10
Orden = Orden & Decenas(ten) & Unidades(unit)

Orden = (Trim(Orden))

End Function

Aprovecho para comentar que he aprendido en esta ocasión del uso de "\" backslash o Barra diagonal invertida como equivalente a Int(Numero/divisor) = numero \ divisor

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.