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

Calcular-media-ponderada-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 Propergol
Escrito por
Sergio Propergol
Formador Excel y Power BI · Fundador de Ayuda Excel

Desde 2006 ayudo a profesionales y empresas a dominar Excel y Power BI de forma práctica, divertida y sin tecnicismos. Dejé el mundo corporativo en 2019 para dedicarme al 100% a la formación. Mi objetivo es siempre el mismo: que dejes de ver Excel como un problema y empieces a verlo como la solución que puede ser.

+25 años de experiencia
+4.200 alumnos formados
+500K lectores al mes
Logo del curso De Cero a Exceler

Domina Excel, de Cero a Experto

¿Atascado? Deja de buscar soluciones puntuales. Aprende a dominar Excel para siempre con nuestro curso online. Más de 115 lecciones y soporte directo.

Posts más leídos