La sorprendente fórmula para convertir números en letras

Cuando parece que ya nada nos sorprende, aparece esta fórmula para convertir números en letras, capaz de dejarnos con la boca abierta...
Convertir números en letras Excel

Cada día me gusta más trabajar con Excel. Aunque parezca que ya nada me podría sorprender, hoy lo ha hecho una consulta en el foro de la web. En ella alguien preguntaba cómo podría traducir el resultado de una fórmula a otro idioma.

En realidad la traducción es lo de menos. Lo que me dejó con la boca abierta fue la fórmula en sí:

Con esta fórmula puedes transformar números en letras (con formato de moneda).

Atención: de momento solo es válida para Excel 365, pues utiliza la función LET:

=LET(importe;A1;
QMillones;SI(importe>999999;ENTERO(importe/1000000));
QMiles;SI(importe>999;ENTERO(importe/1000)-QMillones*1000);
QCentenas;importe-ENTERO(importe/1000)*1000;
QEntera;ENTERO(importe);
QDecimal;REDONDEAR((importe-ENTERO(importe))*100;0);

centfin;SI(QDecimal=1;" céntimo";" céntimos");
eurfin;SI(QEntera=1;" euro";" euros");

matriz;ELEGIR({1;2;3;4};QMillones;QMiles;QCentenas;QDecimal);
calculo;LET(
centena2;ENTERO(matriz/100);
decena2;ENTERO((matriz-centena2*100)/10);
unidad2;ENTERO((matriz-centena2*100-decena2*10));

centenas;{""\"cien"\"doscientos"\"trescientos"\"cuatrocientos"\"quinientos"\"seiscientos"\"setecientos"\"ochocientos"\"novecientos"};
decenas;{""\" diez"\" veinte"\" treinta"\" cuarenta"\" cincuenta"\" sesenta"\" setenta"\" ochenta"\" noventa"};
unidades;{""\" un"\" dos"\" tres"\" cuatro"\" cinco"\" seis"\" siete"\" ocho"\" nueve"};
dieces;{"diez"\"once"\"doce"\"trece"\"catorce"\"quince"\"dieciseis"\"diecisiete"\"dieciocho"\"diecinueve"};
veintes;{"veinte"\"veintiuno"\"veintidos"\"veintitres"\"veinticuatro"\"veinticinco"\"veintiseis"\"veintisiete"\"veintiocho"\"veintinueve"};
tatantos;{""\" y un"\" y dos"\" y tres"\" y cuatro"\" y cinco"\" y seis"\" y siete"\" y ocho"\" y nueve"};

num_letra1;INDICE(centenas;1;centena2+1);
num_letra2;SI(centena2=1;num_letra1&"to";num_letra1);
num_letra3;num_letra2&INDICE(decenas;1;decena2+1);
num_letra4;SI(decena2=0;INDICE(unidades;1;unidad2+1);"");
num_letra5;SI(decena2=1;EXTRAE(num_letra3;1;LARGO(num_letra3)-4)&INDICE(dieces;1;unidad2+1);"");
num_letra6;SI(decena2=2;EXTRAE(num_letra3;1;LARGO(num_letra3)-6)&INDICE(veintes;1;unidad2+1);"");
num_letra7;SI(decena2>2;INDICE(tatantos;1;unidad2+1);"");
num_letra8;SI(decena2=1;num_letra5;SI(decena2=2;num_letra6;num_letra3&num_letra4&num_letra7));
SI(matriz=100;"cien";num_letra8));

txtMillones;SI(importe>999999;SI(QMillones=1;"un millón ";INDICE(calculo;1)&" millones ");"");
txtMil;SI(importe>999;SI(QMiles=1;"mil ";SI(QMiles=0;"";INDICE(calculo;2)&" mil "));"");
txtCent;SI(QEntera=0;"";SI(INDICE(calculo;3)="";"";INDICE(calculo;3))&eurfin);
txtDecimal;SI(INDICE(calculo;4)="";"";SI(QEntera=0;"";" con ")&INDICE(calculo;4)&centfin);

SI(importe=0;"cero euros";ESPACIOS(txtMillones&txtMil&txtCent&txtDecimal)))

Si en tu empresa rellenas pagarés, cheques o letras de cambio (¡qué antiguo es esto!), esta fórmula para convertir números en letras te vendrá muy bien.

¿Prefieres utilizar fórmulas más sencillas? Échale un vistazo a la biblioteca de funciones.

Si deseas conocer a fondo esta megafórmula de Excel, echa un vistazo a este tutorial de Ismael Romero donde te muestra su funcionamiento.

Sergio

Sergio

La destreza y el perfeccionismo quizá sean las dos virtudes que me permiten ayudar a mis clientes a facilitar las tareas administrativas de sus negocios.
Ebook De 0 a 100 con macros y VBA

De 0 a 100 con macros y VBA

Esta oferta no es para siempre...

¡no la desaproveches!