Convertir un número a letras

Última actualización el 07/12/2024
Tiempo de lectura: 4 minutos

Convertir un número en letras ahora es posible gracias a la función LET en Excel 365.

Convertir un número a letras

Para convertir un número en palabras, la solución siempre pasó por crear una macro VBA muy compleja. Algunos sitios, como este, te ofrece un ejemplo de código a utilizar pero según las reglas gramaticales de los países siempre había que adaptar el código; lo cual no es fácil y es fuente de errores.

Ahora con Excel 365 y el nuevo Función LET, puedes convertir un número en palabras. La fórmula es muy compleja y requirió mucho tiempo para desarrollarla. Pero a pesar de ello, hay ciertos puntos de la fórmula que es necesario analizar antes de poder utilizarla.

Convertir números en letras

Característica de la fórmula

Antes de copiar la fórmula complételo y aplíquelo a su libro de trabajo, es importanteAnalice ciertos puntos que podrían ser la causa del mal funcionamiento.

Principio de matrices en Excel.

Excel 365 es la única versión que sabe interpretar rangos de matriz dinámica (es decir, devolver el resultado en varias celdas). Una matriz de varios valores siempre se escribe entre llaves, pero una matriz se puede escribir en fila o columna dependiendo del tipo de separador que utilice. Por ejemplo, en la configuración francesa,

  • el separador de las columnas es el punto ( . )
  • el separador de líneas es el punto y coma ( ; ).
Configuración de Matrix en Francia

Pero si su sistema está configurado en otro país, es muy posible que el separador en línea no sea el punto, sino la barra invertida ( \ ) o solo la coma ( , ) como es el caso de la configuración estadounidense. Esta configuración está vinculada a la configuración de tu computadora.

Separador decimal

Una de las complejidades de escribir esta fórmula es que es capaz de interpretar números con decimales y números sin decimales. El truco está en esta parte de la fórmula. N; SUBSTITUE(TEXTE(A1; REPT(0;9)&",00" );",";"0")

Sin entrar demasiado en detalles sobre esta fórmula, lo que debes tener en cuenta es que tenemos el símbolo de coma decimal escrito dos veces.

  • , 00.
  • y el símbolo de reemplazo de la función SUSTITUIR al final ",";"0".

Si trabaja con el separador decimal de punto (.), deberá reemplazar estas 2 comas con un punto en la función. N; SUBSTITUE(TEXTE(A1; REPT(0;9)&".00" );".";"0")

Escribe Euros/céntimos o nada

Tal como está escrita la fórmula siempre sumará euros al final de un número y céntimos si el número tiene decimales Denom; {" million ";" mille ";" Euros ";" Centimes"}

Ahora bien, si no deseas mostrar las palabras Euros y Céntimos, simplemente debes eliminar estas palabras PERO MANTENIENDO las comillas vacías para respetar el número de apariciones en la matriz. Denom; {" million ";" mille ";"";""}

Fórmula para convertir un número en letras (Francia)

Para combinar las diferentes partes en una fórmula, necesitamos usar la función DEJAR. La fórmula completa es la siguiente:

= DEJAR (
Nombre; {"millones";"mil";"Euro";"Céntimos"};
números; {""."Uno"."Dos"."Tres"."Cuatro"."Cinco"."Seis"."Siete"."Ocho"."Nueve"};
Adolescentes; {"Diez"."Once"."Doce"."Trece"."Catorce"."Quince"."Dieciséis"."Diecisiete"."Dieciocho"."Diecinueve"};
Decenas; {""."Diez"."Veinte"."Treinta"."Cuarenta"."Cincuenta"."Sesenta"."Sesenta"."Ochenta"."Ochenta"};
grupo; {0;1;2;3};
DEJAR(
NO; SUSTITUIR( TEXTO( A1; REPETIR(0;9)&",00" );",";"0");
h; CNUM( STXT( N; 3*grupo+1; 1) ); T; CNUM( STXT( N; 3*grupo+2; 1) );
Ud; CNUM(STXT(N; 3*grupo+3; 1));
texto; IF( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent" ); "");
texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; " "; "" ); " " );
texto; SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1)));
BORRAR(SUSTITUIR(PROPERNAME(CONCAT( IF( H+T+U; Htxt & Ttxt & Utxt & Denom; "" )));"Mil";"Mil"))
))

PD: 3 MVP de Excel y 6 días de desarrollo para obtener este resultado

Fórmula para convertir un número en letras (Bélgica y Suiza)

Estos 2 países no utilizan setenta y noventa por lo que se debe adaptar la fórmula. Por otra parte, los suizos tampoco utilizan los ochenta sino ochenta u octante. Sólo debes corregir esta información en la siguiente fórmula en la línea Usted.

= DEJAR (
Denom, {" millones "; " mil "; " euro "; " céntimos "},
Números, {"","Uno","Dos","Tres","Cuatro","Cinco","Seis","Siete","Ocho","Nueve"},
Adolescentes, {"Diez","Once","Doce","Trece","Catorce","Quince","Dieciséis","Diecisiete","Dieciocho","Diecinueve"},
Decenas, {"","Diez","Veinte","Treinta","Cuarenta","Cincuenta","Sesenta","Septuaginta","Ochenta","Noventa"},
grupo, {0;1;2;3},
DEJAR(
N, SUSTITUIR( TEXTO( A1, REPETIR(0,9)&",00" ),","0"),
H, VALOR( MEDIO( N, 3*grp+1, 1) ), T, VALOR( MEDIO( N, 3*grupo+2, 1) ),
U, VALOR( MEDIO( N, 3*grp+3, 1) ),
Htxt, IF(H, IF(H>1, INDEX(Nums, H+1) & “cent”, “cent” ), “”),
Ttxt, SI( T>1, ÍNDICE( Decenas, T+1 ) & SI( U>0, " ", "" ), " " ),
Utxt, SI((T+U), SI(T=1, ÍNDICE(Adolescentes,U+1), ÍNDICE(Números,U+1))),
TRIM(SUSTITUIR(PROPER(CONCAT( IF( H+T+U, Htxt & Ttxt & Utxt & Denom, "" ))),"Mil","Mil"))
))

Artículos relacionados

69 Comentarios

  1. ronald
    16/09/2025 a las 21:06

    Hola,
    Gracias por la formula.

    Sin embargo, encuentro un problema
    Aquí esta el valor que indico 101319,31
    Aquí está la conversión que me da: "Cien Mil Trescientos Diecinueve Euros con Treinta y Un Céntimos Impuestos Incluidos"

    Me falta el 'uno'

    Responder

  2. Myke
    15/04/2025 a las 16:50

    Hola,
    Estoy buscando probadores para ver si quedan errores en la fórmula😎
    Probablemente no sea el más optimizado, pero ahí está...
    ::corrección ortográfica, gramatical, concordancias...
    :: adición de "y x céntimos" como lo exige el lenguaje de Molière
    :: ...

    Bueno, necesitas modificar (en la línea 8) la dirección de la celda que contiene tu número

    = DEJAR (
    Denom;{"millones";"mil";"Euro";"Céntimo"};Denomios;{"millones";"mil";"Euros";"Céntimos"};
    Nums;{"";"uno";"dos";"tres";"cuatro";"cinco";"seis";"siete";"ocho";"nueve"};
    Adolescentes;{"diez";"once";"doce";"trece";"catorce";"quince";"dieciséis";"diecisiete";"dieciocho";"diecinueve"};
    Diez;{"";"diez";"veinte";"treinta";"cuarenta";"cincuenta";"sesenta";"sesenta-";"ochenta";"ochenta-"};
    grupo;{0;1;2;3};
    DEJAR(
    N;SUBSTITUE(TEXTE($A$60;REPT(0;9)&",00");",";"0");Ne;CNUM(GAUCHE(N;9));
    H;CNUM(STXT(N;3*grp+1;1));T;CNUM(STXT(N;3*grp+2;1));U;CNUM(STXT(N;3*grp+3;1));HTU;CNUM(H&T&U);
    Htxt;SI(H>1;INDEX(Nums;H+1);"")&SI.CONDITIONS(H=0;"";(H>1)*(T=0)*(U=0);" cents ";((H=1)*(T=0)*(U=0))+((H0)*((T0)+(U0)));" cent ");
    Ttxt;SI(T>1;INDEX(Tens;T+SI((T=7)+(T=9);0;1))&SI.CONDITIONS((T=8)*(U=0);"s ";U=0;"";((T=8)+(T=9))*(U=1);"-";U=1;" et ";U>1;"-");" ");
    Utxt;SI((T+U);SI((T=1)+(T=7)+(T=9);INDEX(Teens;U+1);INDEX(Nums;U+1));"");
    Cnt;SI( (grp=3)*(HTU>0);" y ";"");
    Eur;SI((grupo=2)*(HTU=0);1;0);
    Mil;SI((grupo=1)*(HTU=1);1;0);
    Mls;SI((grupo=0)*(HTU=1);1;0);
    BORRAR(CONCAT(SI(H+T+U+Eur; Cnt & Htxt & Ttxt & SI(Mil=1;"";Utxt) & SI( ((HTU=1)*(Ne=1))+(Mls=1);Denom;Denoms);"")))
    ))

    Responder

    • Ofelia Miconnet
      11/08/2025 a las 10:09

      Bonjour.
      Lo primero que quiero decir es que muchas gracias por esta fórmula, ¡qué ahorro de tiempo para mi departamento!
      Sin embargo he notado algunos errores, cuando es cien solo por ejemplo 500, pone quinientos euros falsos. y 70 pone setenta.
      ¿También es posible eliminar las letras mayúsculas de los números?
      merci encore.

      Responder

      • Frédéric LE GUEN
        11/08/2025 a las 10:47

        Dejaré que la comunidad responda porque realmente no tengo tiempo para depurar la fórmula.

  3. Antoine
    17/12/2024 a las 15:06

    Bien hecho y gracias!!!!! 🙂

    Responder

  4. Jannin
    03/10/2024 a las 15:15

    Hola y muchas gracias por este trabajo. Sólo tengo un problema con el número 21200€ que me da Veinte Mil Doscientos Euros cuando debería tener veintiún mil doscientos Euros. ¿Pueden ayudarme? No encuentro la solución.

    Responder

    • Aurélie
      20/11/2024 a las 14:16

      Hola, lo intenté quitando Mil al final de la fórmula y dejando "" y funciona.

      Me gustaría ver agregar el "y" veintiuno

      Responder

  5. Benoit
    26/09/2024 a las 08:16

    Hola,
    gracias por este trabajo, muy practico
    Sólo una pregunta adicional: ¿cómo puedo hacer que la moneda sea una variable (Euro, Dólares, Libra, etc.) con una celda correspondiente en lugar de obligar al usuario a ingresar la fórmula para modificarla?

    Responder

    • Frédéric LE GUEN
      29/09/2024 a las 11:52

      Tienes que modificar la fórmula agregando SI.CONDITIONS o SEARCHX para agregar la moneda al final.

      Responder

  6. bachir
    25/09/2024 a las 09:54

    esq ¿funciona con excel 2013?

    Responder

    • Frédéric LE GUEN
      29/09/2024 a las 11:52

      Responder

  7. AXA
    16/02/2024 a las 17:01

    Hola,

    Gracias por tu trabajo.

    Sin embargo, ¿dónde debes ingresar la fórmula y dónde debes poner el número que deseas transformar?

    Merci

    Responder

    • Frédéric LE GUEN
      17/02/2024 a las 06:20

      Tu número debe estar en A1. Luego copias la fórmula donde quieras

      Responder

  8. Stefan
    23/11/2023 a las 12:43

    Bravo por el trabajo y muchas gracias por los comentarios que me ayudaron a entender.

    Responder

  9. Alain MATHIEU
    27/09/2023 a las 09:45

    Hola,

    Hay determinadas cifras que no son correctas, aunque no he podido identificar el motivo.
    Por ejemplo 31300 da un resultado doblemente falso: Treinta Mil Trescientos Euros Falso
    (¿faltan los mil y agrega FALSO al final?)
    Pero qué trabajo tan útil, que sólo requiere una verificación y posible corrección de una o dos cifras.

    Responder

  10. BEN MAAMER AHMED
    03/09/2023 a las 18:07

    copio pegado,,,no funciona???

    =LET(Denom; {"millones";"mil";"Dinares argelinos";"Céntimos"};Nums; {""."Uno"."Dos"."Tres"."Cuatro"."Cinco". “Seis”.”Siete”.”Ocho”.”Nueve”}; Adolescentes; {Diez”.”Once”.”Doce”.”Trece”.”Catorce”.”Quince”.”Dieciséis”.”Diez- siete"."Dieciocho"."Diecinueve"};Decenas; {""."Diez"."Veinte"."Treinta"."Cuarenta"."Cincuenta"."Sesenta"."Sesenta". "Ochenta". "Ochenta"};
    grupo; {0;1;2;3};LET(N; SUSTITUIR( TEXTO( B12; REPT(0;9)&",00" );",";"0");H; CNUM( STXT( N; 3*grp+1; 1) ); T; CNUM( STXT( N; 3*grp+2; 1) );U; CNUM( STXT( N; 3*grp+3; 1) );Htxt; SI( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent"); "");
    texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; " "; "" ); " " );Utxt; IF((T+U); IF((T=1)+(T=7)+(T=9); INDEX(Adolescentes;U+1);INDEX(Numeros;U+1)));DELETESPACE( SUSTITUIR(NOMBRE PROPIO(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" )));"Mil";"Mil"))))

    Responder

    • Frédéric LE GUEN
      04/09/2023 a las 08:21

      ¿Qué versión de Excel tienes?

      Responder

      • FANIE
        04/09/2023 a las 16:41

        Hola,

        Gracias por esta fórmula tan útil.

        Quiero quitar los céntimos pero al quitar el término "Céntimos" de la fórmula dejando las comillas, siguen apareciendo las letras correspondientes a los céntimos.
        Puedes ayudarme por favor ?
        Merci par avance

    • Faycal
      13/04/2025 a las 18:02

      Tengo el mismo problema

      Responder

  11. FIONA
    11/06/2023 a las 02:59

    Para agregar texto después de convertirlo a letras (Catherine), debes colocar el texto al final de la fórmula:
    BORRAR(SUSTITUIR(SUSTITUIR(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" ));"mil";"mil");"un millón";"un millón"))
    )) & “Acciones Clase A”.

    También puedes mejorar el texto con:
    )) & "acción" & If($A$1>1; "s ";" ") & "categoría A."
    La fórmula es simplista, podría haberla integrado al final del primer LET, cuidado (Alt+Enter) no debe ingresarse, estas son las claves para escribir:

    grupo; {0;1;2;3}; (Alt+Entrar)
    Suplemento; {"en acciones Clase A."};

    Luego modificando la última línea:

    CONCAT(BORRAR(SUSTITUIR(SUSTITUIR(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" ));"mil";"mil");"un millón";"un millón" )) & Suplente)

    Cada línea del LET debe verse como una opción asignada a una variable con nombre, por ejemplo: "nombre-A;{"elección 0; elección 1; elección 2; ...};"
    Luego, un poco más abajo, una directiva que puede contener una condición: "Utxt; Si( ​​​​($A$1>1; INDEX(nombre-A; 2));"
    En este ejemplo, cuando se ejecuta la fórmula, la variable denominada "Utxt" contendrá la "opción 1" debido al valor "2" pasado a INDEX.
    Esto es lo que se hace en cada línea del segundo LET.
    Tu turno.

    Responder

    • Frédéric LE GUEN
      11/06/2023 a las 03:48

      Muchas gracias Fiona por este trabajo tan diligente 🙂

      Responder

  12. FIONA
    11/06/2023 a las 01:58

    Encontré esta publicación por casualidad y encontré el mismo problema al ejecutar la fórmula. De hecho, a continuación debes eliminar cada línea vacía y al final de la línea anterior agregar Alt+Enter. O una fórmula de 15 líneas. El número a convertir se coloca en A1, la fórmula en B1 o en otro lugar. Para modificar A1, vaya a la octava línea (debajo del segundo "LET") y modifique "$A$8". Aproveché para corregir la última línea reemplazando “un millón” por “un millón”. Última información, el número está limitado a 1 dígitos + 9 decimales formateados por el modelo >> REPT(2;0) & ",9". Buena suerte :

    = DEJAR (

    Nombre; {"millones";"mil";"Euros";"Céntimos"};

    números; {"";"uno";"dos";"tres";"cuatro";"cinco";"seis";"siete";"ocho";"nueve"};

    Adolescentes; {"diez"; "once"; "doce"; "trece"; "catorce"; "quince"; "dieciséis"; "diecisiete"; "dieciocho"; "diecinueve"};

    Decenas; {"";"diez";"veinte";"treinta";"cuarenta";"cincuenta";"sesenta";"sesenta";"ochenta";"ochenta"};

    grupo; {0;1;2;3};

    DEJAR(

    NO; SUSTITUIR( TEXTO( $A$1; REPETIR(0;9)&",00" );",";"0");

    h; CNUM(STXT(N; 3*grupo+1; 1)); T; CNUM(STXT(N; 3*grupo+2; 1));

    Ud; CNUM(STXT(N; 3*grupo+3; 1));

    texto; IF( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent" ); "");

    texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; "-"; "" ); " " );

    texto; SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1));"") ;

    BORRAR(SUSTITUIR(SUSTITUIR(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" ));"mil";"mil");"un millón";"un millón"))

    ))

    Responder

  13. Catalina
    26/01/2023 a las 20:01

    Hola,

    Utilicé la siguiente fórmula para que mis números quedaran escritos en letras.

    =SI(K9="Compras";LET(
    Nombre; {"millones";"mil";"acciones clase A";""};
    números; {""."uno"."dos"."tres"."cuatro"."cinco"."seis"."siete"."ocho"."nueve"};
    Adolescentes; {"diez"."once"."doce"."trece"."catorce"."quince"."dieciséis"."diecisiete"."dieciocho"."diecinueve"};
    Decenas; {""."diez"."veinte"."treinta"."cuarenta"."cincuenta"."sesenta"."sesenta"."ochenta"."ochenta"};
    grupo; {0;1;2;3};
    DEJAR(
    NO; SUSTITUIR( TEXTO( I9; REPETIR(0;9)&",00" );",";"0");
    h; CNUM(STXT(N; 3*grupo+1; 1)); T; CNUM(STXT(N; 3*grupo+2; 1));
    Ud; CNUM(STXT(N; 3*grupo+3; 1));
    texto; IF( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent" ); "");
    texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; " "; "" ); " " );
    texto; SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1)));
    BORRAR(SUSTITUIR(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" ));"mil";"mil"))
    ));)

    Todo funciona excepto una celda. Debería escribir cien acciones de Clase A, pero en lugar de eso escribe cien acciones de Clase A FALSAS.

    ¿Puedes ayudarme a resolver el problema por favor?

    Merci.

    Responder

    • Catalina
      26/01/2023 a las 20:06

      Si el número es negativo, ¿se debe cambiar la fórmula?
      gracias otra vez

      Responder

      • Frédéric LE GUEN
        28/01/2023 a las 14:41

        En principio si (nunca he hecho la prueba)

    • Rodolfo Gaillot
      01/09/2023 a las 13:52

      Hola, necesitas modificar la línea Utxt, falta la condición si U>1, lo que da:
      texto; SI(U>1;SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1 ) )));"");

      Responder

    • Ethan
      26/04/2024 a las 16:45

      Gracias por esta fórmula, funciona.

      Responder

  14. VIRGINIA LÓBETA
    19/12/2022 a las 14:20

    ¡Hola
    esta parte no me funciona. ¿Cómo debo proceder para unir estas 2 funciones al resto?

    "Luego continúa de la misma manera (conversión de 2000 en la que falta la palabra Euros)

    =SI(DERECHA(E11;5)="mil";CONCAT(E11;"Euros");E11)

    y finalmente (conversión de 2000,20 a la que le falta la palabra Euros)

    =SI(ESTERREUR(CHERCHE("Euros";E12));CONCAT(GAUCHE(E12;CHERCHE("mille";E12)+4);" Euros et ";STXT(E12;CHERCHE("mille";E12)+6;999));E12)""
    Muchas gracias

    Responder

    • VIRGINIA LÓBETA
      30/01/2023 a las 11:27

      Hola,
      ¡¡Perdón por insistir pero estoy realmente estancado!!
      ¿Cómo debo proceder para escribir "EUROS" en Mil, Dos Mil, Tres Mil...?

      Merci d'avance de votre réponse

      Responder

  15. Jean-Claude COURAU
    30/11/2022 a las 17:23

    Muchas gracias, excelente y muy útil.

    Efectivamente es necesario hacer la pequeña corrección añadiendo ;""
    ÍNDICE(Números;U+1)) ;"");

    Se deben considerar otras mejoras, por ejemplo millones o millones si >1000000.

    Responder

  16. Tristán Geoffroy
    22/11/2022 a las 12:09

    Hola,
    gracias por esta fórmula que es inspiradora porque me parece muy inteligente,.., quizás demasiado para mí, porque no puedo entenderla o por qué no me funciona. ¿Es posible tener una explicación más literal de los pasos?
    Merci

    Responder

    • Frédéric LE GUEN
      24/11/2022 a las 17:29

      Houla, eres uno de los pocos que me pide que te explique una fórmula (generalmente la gente no se molesta en los detalles y simplemente copia la fórmula. Pero bueno, desafortunadamente no tengo suficiente tiempo para escribir un artículo sobre todos los complejidades de la fórmula ¿Qué parte no entiendes?

      Responder

      • Tristán GEOFFROY
        07/01/2023 a las 17:29

        Hola,
        bueno como no me funcionó, estuve tratando de entender para corregir mi error. Pero entiendo muy bien que se necesita un tiempo que no necesariamente tenemos.
        Desde entonces he usado otro, más de fuerza bruta y menos elegante.
        Aclararé mis dudas
        Feliz año

      • Tristán GEOFFROY
        15/01/2023 a las 20:00

        21 da veintiún euros en lugar de "veintiún euros", lo mismo para 31 41 51 61. ; cuando entendí el código estaría
        Corrígelo. 😉

      • Frédéric LE GUEN
        16/01/2023 a las 20:19

        Sí, sé que no es perfecto. Pero realmente no tengo tiempo para mejorar la función.

  17. JP
    14/11/2022 a las 20:59

    Es un buen comienzo pero está lleno de errores, errores que se pueden corregir con una serie de sustituciones.

    Después de eliminar las letras mayúsculas de la fórmula anterior, se obtiene:

    = DEJAR (
    Nombre; {"millones";"mil";"Euros";"céntimos"};
    números; {""."uno"."dos"."tres"."cuatro"."cinco"."seis"."siete"."ocho"."nueve"};
    Adolescentes; {"diez"."once"."doce"."trece"."catorce"."quince"."dieciséis"."diecisiete"."dieciocho"."diecinueve"};
    Decenas; {""."diez"."veinte"."treinta"."cuarenta"."cincuenta"."sesenta"."sesenta"."ochenta"."ochenta"};
    grupo; {0;1;2;3};
    DEJAR(
    NO; SUSTITUIR( TEXTO( F9; REPETIR(0;9)&",00" );",";"0");
    h; CNUM(STXT(N; 3*grupo+1; 1)); T; CNUM(STXT(N; 3*grupo+2; 1));
    Ud; CNUM(STXT(N; 3*grupo+3; 1));
    texto; IF( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent" ); "");
    texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; " "; "" ); " " );
    texto; SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1)));
    BORRAR(SUSTITUIR(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" ));"mil";"mil"))
    ))

    (reemplace F9 con la celda que contiene el número)

    realizar las sustituciones:

    =SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(E9;"FALSO";"s");"ochenta euros";"ochenta euros");"ochenta céntimos"; "ochenta céntimos");"veinte uno";"veintiuno");" ";"-");"-Euros";"Euros");"Euros-";"Euros y") ;"-céntimos";"céntimos")

    (reemplace E9 con la celda que contiene el primer resultado)

    luego de la misma manera continuar (conversión de 2000 en la que falta la palabra Euros)

    =SI(DERECHA(E11;5)="mil";CONCAT(E11;"Euros");E11)

    y finalmente (conversión de 2000,20 a la que le falta la palabra Euros)

    =SI(ESTERREUR(CHERCHE("Euros";E12));CONCAT(GAUCHE(E12;CHERCHE("mille";E12)+4);" Euros et ";STXT(E12;CHERCHE("mille";E12)+6;999));E12)

    Responder

    • Frédéric LE GUEN
      18/11/2022 a las 14:57

      Muchas gracias por este trabajo y el esfuerzo dedicado.

      Responder

    • VIRGINIA LÓBETA
      19/12/2022 a las 14:59

      ¡Hola
      por mi parte esta parte de la fórmula no funciona:

      "Luego continúa de la misma manera (conversión de 2000 en la que falta la palabra Euros)

      =SI(DERECHA(E11;5)="mil";CONCAT(E11;"Euros");E11)

      y finalmente (conversión de 2000,20 a la que le falta la palabra Euros)

      =SI(ESTERREUR(CHERCHE("Euros";E12));CONCAT(GAUCHE(E12;CHERCHE("mille";E12)+4);" Euros et ";STXT(E12;CHERCHE("mille";E12)+6;999));E12)

      ¿Cómo procedo? gracias por su respuesta

      Responder

    • VIRGINIA LÓBETA
      30/01/2023 a las 12:04

      ¡Hola
      esta parte no me funciona. ¿Cómo debo proceder para unir estas 2 funciones al resto?

      "Luego continúa de la misma manera (conversión de 2000 en la que falta la palabra Euros)

      =SI(DERECHA(E11;5)="mil";CONCAT(E11;"Euros");E11)

      y finalmente (conversión de 2000,20 a la que le falta la palabra Euros)

      =SI(ESTERREUR(CHERCHE("Euros";E12));CONCAT(GAUCHE(E12;CHERCHE("mille";E12)+4);" Euros et ";STXT(E12;CHERCHE("mille";E12)+6;999));E12)""

      ¡Estoy realmente estancado!

      Muchas gracias

      Responder

    • Jannin
      03/10/2024 a las 10:34

      Hola, estoy muy interesado en esta fórmula y ¿pueden decirme dónde reemplazo las siguientes piezas por favor?

      =SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(E9;"FALSO";"s");"ochenta euros";"ochenta euros");"ochenta céntimos"; "ochenta céntimos");"veinte uno";"veintiuno");" ";"-");"-Euros";"Euros");"Euros-";"Euros y") ;"-céntimos";"céntimos")

      =SI(DERECHA(E11;5)="mil";CONCAT(E11;"Euros");E11)

      =SI(ESTERREUR(CHERCHE("Euros";E12));CONCAT(GAUCHE(E12;CHERCHE("mille";E12)+4);" Euros et ";STXT(E12;CHERCHE("mille";E12)+6;999));E12)

      Merci pour votre réponse.

      Responder

  18. Pierrick
    17/05/2022 a las 14:52

    Gracias por compartir.
    ¿Alguien ha hecho las adaptaciones para respetar las reglas de acuerdo de números en francés?

    Responder

  19. Pierre FUCHY
    29/03/2022 a las 14:08

    Hola!
    Bastante inútil y viejo, tengo Excel 365. Simplemente copié la fórmula de Francia y la pegué en B1, después de poner un número en A1. El milagro no ocurrió.
    La fórmula se pegó en 15 celdas de B1 a B15 y no aparece ningún mensaje de error.
    Intenté usar Word para pegar todo en la misma celda: todavía no sirve.
    ¿Problema de espacio o algo tan obvio que no lo mencionas?
    ¿O qué, no tengo el nivel?
    Si me puedes responder te lo agradezco de antemano.
    Pierre

    Responder

  20. SB
    06/11/2021 a las 08:35

    Hola,
    ¡impresionante!
    Pero... si pongo 10€ o 000,05, no tengo el "Euro" y además debería ser "Euros" con s...
    Bravo,
    SB

    Responder

    • Frédéric LE GUEN
      07/11/2021 a las 15:06

      Sí, correcto, se debe a que los 3 valores unitarios son 0, por lo que 0 * 'euro' no devuelve nada.

      Responder

      • hamid
        01/12/2021 a las 20:41

        Hola,

        Muchas gracias por lo que haces
        sólo por 100 te dan “Cent Faux Mille” en lugar de Hundred Thousand
        Merci.

      • Frédéric LE GUEN
        05/12/2021 a las 17:05

        Sí, este es el único error (pero puedes solucionarlo manualmente)

  21. Vero
    05/11/2021 a las 19:59

    ¡GUAU! ¡¡Impresionante!! Gracias ! NbLettre funciona muy difícil, ¡es genial!

    Responder

  22. nathalie
    22/10/2021 a las 12:34

    También tuve un problema con 3grp y tuve que escribir 3*grp, después de eso funciona perfectamente... mucho tiempo ahorrado.
    Muchas gracias.

    Responder

    • Frédéric LE GUEN
      23/10/2021 a las 16:16

      Muchas gracias por señalar el error tipográfico en el artículo. esta corregido

      Responder

  23. Sandra
    02/07/2021 a las 08:36

    Hola,

    ¡Gracias por esta fórmula realmente genial y por los comentarios que realmente ayudan!
    Tengo una pequeña pregunta con respecto al formato... Me gustaría que el número escrito completo solo incluyera letras minúsculas, intenté simplemente reemplazar las letras mayúsculas con letras minúsculas en la fórmula pero eso no cambió nada...

    ¿Hay algo adicional que hacer?

    Agradeciéndole de antemano

    Responder

    • Frédéric LE GUEN
      02/07/2021 a las 09:08

      Debe eliminar la instrucción PROPERNAME. Ella es quien escribe cada primera letra en mayúsculas.

      Responder

  24. aleya
    02/04/2021 a las 12:17

    hola, soy novato en Excel, no pude usar la fórmula, pegué en una celda pero no entendí cómo ingresar la celda con el número

    Responder

    • Maxime Caruel
      06/04/2021 a las 07:51

      En la décima línea de la fórmula, tienes A10 que debes reemplazar con tu celda que contiene un valor en números. Como novato también, lo logré. Gracias por compartir esta fórmula.

      Responder

      • NGUYEN
        07/04/2021 a las 16:09

        Hola,

        Soy igual que ALEYA. ¿También reemplacé la celda que contiene valor en números pero sigue siendo #NOMBRE?

        Sabes por qué ?

        Agradeciéndole de antemano,

      • Frédéric LE GUEN
        07/04/2021 a las 16:12

        Su versión de Excel no admite la función LET. Necesitas Excel 365

      • NGUYEN
        09/04/2021 a las 09:28

        Efectivamente tengo Excel 365 pero quizás la versión no esté actualizada.
        Y luego cambié la computadora y funciona bien.

        Además, cuando es 1000; 4000; ...no muestra euros, sólo mil cuatro mil. ¿Cómo podemos sumar cuando se trata del número x Mil?

        Muchas gracias por este hermoso trabajo.

        Bien à vous,

  25. Nicolás Georges
    27/02/2021 a las 11:44

    Gracias por compartir !

    Tuve que leer el artículo completo para descubrirlo. debería escribirse \ en mi configuración 😉
    Tuve un problema con 3grp y tuve que escribir 3*grp.
    De lo contrario, también tengo un problema con Utxt: tengo que agregar un ;"") al final del primer IF, de lo contrario obtengo, por ejemplo, "Dix Mille Cent Faux Euros", quiero euros reales :-p

    Nicolas.

    PD: la fórmula FR final con mi versión de Excel 365 (versión 2101, compilación 13628.20274):
    = DEJAR (
    Nombre; {"millones";"mil";"Euro";"Céntimos"};
    números; {""\"Uno"\"Dos"\"Tres"\"Cuatro"\"Cinco"\"Seis"\"Siete"\"Ocho"\"Nueve"};
    Adolescentes; {"Diez"\"Once"\"Doce"\"Trece"\"Catorce"\"Quince"\"Dieciséis"\"Diecisiete"\"Dieciocho"\"Diecinueve"};
    Decenas; {""\"Diez"\"Veinte"\"Treinta"\"Cuarenta"\"Cincuenta"\"Sesenta"\"Sesenta"\"Ochenta"\"Ochenta"};
    grupo; {0;1;2;3};
    DEJAR(
    NO; SUSTITUIR( TEXTO( $I$7; REPETIR(0;9)&",00" );",";"0");
    h; CNUM(STXT(N; 3*grupo+1; 1)); T; CNUM(STXT(N; 3*grupo+2; 1));
    Ud; CNUM(STXT(N; 3*grupo+3; 1));
    texto; IF( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent" ); "");
    texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; "-"; "" ); " " );
    texto; SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1));"") ;
    BORRAR(SUSTITUIR(PROPERNAME(CONCAT( IF( H+T+U; Htxt & Ttxt & Utxt & Denom; "" )));"Mil";"Mil"))
    ))

    Responder

    • Frédéric LE GUEN
      27/02/2021 a las 17:46

      Hay que leerlo todo 😉 Siempre hay una razón detrás de una fórmula.
      Ok para el grupo 3* y gracias.

      Responder

    • Rémy
      10/05/2021 a las 19:34

      Hola y gracias por la fórmula "compatible" con mi versión. Pero para mí es un pequeño problema, las cantidades se muestran en centavos.
      Por ejemplo
      70 = setenta centavos
      700 = 7 euros
      Estoy buscando pero no encuentro donde está el error.
      tienes una idea?

      Responder

    • Pedro B
      27/08/2021 a las 14:47

      Gracias por todas estas acciones, cuando pongo 101000 obtengo el resultado: Cien Mil. No veo qué hay de malo en la fórmula.
      Gracias de antemano por sus comentarios.

      Responder

      • Frédéric LE GUEN
        05/09/2021 a las 10:24

        Ninguna idea. La fórmula no se ha ampliado más allá de 99

      • Sébastien
        20/12/2021 a las 18:16

        Hola,
        el problema surge de la visualización de 21, 000, etc...

      • Sébastien
        20/12/2021 a las 19:16

        Mi truco para hacerlo funcionar con miles de millones de francos CFA... y resolver el problema de 21, 000, etc...

        = DEJAR (
        Denom;{"mil millones";"millones";"mil";"";""};
        Nums;{""."Uno"."Dos"."Tres"."Cuatro"."Cinco"."Seis"."Siete"."Ocho"."Nueve"};
        Adolescentes;{"Diez"."Once"."Doce"."Trece"."Catorce"."Quince"."Dieciséis"."Diecisiete"."Dieciocho"."Diecinueve"};
        Decenas;{""."Diez"."Veinte"."Treinta"."Cuarenta"."Cincuenta"."Sesenta"."Sesenta"."Ochenta"."Ochenta"};
        grp;{0;1;2;3;4};
        DEJAR(
        N;SUBSTITUE(TEXTE(ARRONDI(F38;0);REPT(0;12)&",00");",";"0");
        H;CNUM(STXT(N;3*grupo+1;1));
        T;CNUM(STXT(N;3*grp+2;1));
        U;CNUM(STXT(N;3*grp+3;1));
        Htxt;IF(H;SI(H>1;INDEX(Nums;H+1)&"cent";"cent");"");
        Ttxt;SI(T>1;INDEX(Decenas;T+1)&IF(U>0;" ";"");" ");
        Utxt;SI((T+U);SI((T=1)+(T=7)+(T=9);INDEX(Teens;U+1);INDEX(Nums;U+1));" ");
        BORRAR(IF(C13=1000;SUSTITUIR(PROPERNAME(CONCAT(IF(H+T+U;Htxt&Ttxt&Utxt&Denom;"")));"Mil";" Mil");PROPERNAME(CONCAT(IF(H+T+ U ;Htxt&Ttxt&Utxt&Denom;""))))))&" Franco CFA")

  26. Efram
    25/01/2021 a las 15:41

    Por otro lado para modificar según el país, por ejemplo Suiza, solo hay que sustituir “ochenta” por ochenta y noventa por noventa o ¿hay que modificar otros puntos de la fórmula?

    Responder

    • Frédéric LE GUEN
      25/01/2021 a las 15:51

      Si, si, si,.... un poco de paciencia.
      Sé que tengo que hacerlo pero tengo mil tareas que hacer primero.
      No es fácil ser el último MVP en francés. Tengo muchos temas que cubrir.
      Pero se hará.

      Responder

      • Efram
        26/01/2021 a las 15:49

        Ok gracias por el artículo y los consejos súper prácticos.

    • Frédéric LE GUEN
      25/01/2021 a las 22:35

      Pero para tener setenta, en realidad son setenta, como en Bélgica.

      Responder

  27. Charles
    21/01/2021 a las 10:08

    Sombrero ! Sin embargo, al leer la fórmula final, inmediatamente vi… ¡que es un verdadero dolor de cabeza!
    Por otro lado, ¡me encanta la idea de hacerlo con fórmulas MACRO-FREE!
    Bravo!

    Responder

    • Frédéric LE GUEN
      21/01/2021 a las 15:14

      Por supuesto que había trabajo. Por eso compartí la función porque es imposible crear este tipo de fórmula desde cero. Y las macros, si podemos evitarlas, es mucho mejor

      Responder

Dejar un comentario

Su dirección de correo electrónico no será publicada. Los campos necesarios están marcados con *

Este sitio usa Akismet para reducir los no deseados. Obtenga más información sobre cómo se procesan sus datos de comentarios.

Jugador Más Valioso de Microsoft 2024

Boletín informativo

1 vez al mes:
Consejos y cuestionarios

    No te enviaremos spam. Puedes darte de baja en cualquier momento.

    Convertir un número a letras

    Tiempo de leer: 4 minutos
    Última actualización el 07/12/2024

    Convertir un número en letras ahora es posible gracias a la función LET en Excel 365.

    Convertir un número a letras

    Para convertir un número en palabras, la solución siempre pasó por crear una macro VBA muy compleja. Algunos sitios, como este, te ofrece un ejemplo de código a utilizar pero según las reglas gramaticales de los países siempre había que adaptar el código; lo cual no es fácil y es fuente de errores.

    Ahora con Excel 365 y el nuevo Función LET, puedes convertir un número en palabras. La fórmula es muy compleja y requirió mucho tiempo para desarrollarla. Pero a pesar de ello, hay ciertos puntos de la fórmula que es necesario analizar antes de poder utilizarla.

    Convertir números en letras

    Característica de la fórmula

    Antes de copiar la fórmula complételo y aplíquelo a su libro de trabajo, es importanteAnalice ciertos puntos que podrían ser la causa del mal funcionamiento.

    Principio de matrices en Excel.

    Excel 365 es la única versión que sabe interpretar rangos de matriz dinámica (es decir, devolver el resultado en varias celdas). Una matriz de varios valores siempre se escribe entre llaves, pero una matriz se puede escribir en fila o columna dependiendo del tipo de separador que utilice. Por ejemplo, en la configuración francesa,

    • el separador de las columnas es el punto ( . )
    • el separador de líneas es el punto y coma ( ; ).
    Configuración de Matrix en Francia

    Pero si su sistema está configurado en otro país, es muy posible que el separador en línea no sea el punto, sino la barra invertida ( \ ) o solo la coma ( , ) como es el caso de la configuración estadounidense. Esta configuración está vinculada a la configuración de tu computadora.

    Separador decimal

    Una de las complejidades de escribir esta fórmula es que es capaz de interpretar números con decimales y números sin decimales. El truco está en esta parte de la fórmula. N; SUBSTITUE(TEXTE(A1; REPT(0;9)&",00" );",";"0")

    Sin entrar demasiado en detalles sobre esta fórmula, lo que debes tener en cuenta es que tenemos el símbolo de coma decimal escrito dos veces.

    • , 00.
    • y el símbolo de reemplazo de la función SUSTITUIR al final ",";"0".

    Si trabaja con el separador decimal de punto (.), deberá reemplazar estas 2 comas con un punto en la función. N; SUBSTITUE(TEXTE(A1; REPT(0;9)&".00" );".";"0")

    Escribe Euros/céntimos o nada

    Tal como está escrita la fórmula siempre sumará euros al final de un número y céntimos si el número tiene decimales Denom; {" million ";" mille ";" Euros ";" Centimes"}

    Ahora bien, si no deseas mostrar las palabras Euros y Céntimos, simplemente debes eliminar estas palabras PERO MANTENIENDO las comillas vacías para respetar el número de apariciones en la matriz. Denom; {" million ";" mille ";"";""}

    Fórmula para convertir un número en letras (Francia)

    Para combinar las diferentes partes en una fórmula, necesitamos usar la función DEJAR. La fórmula completa es la siguiente:

    = DEJAR (
    Nombre; {"millones";"mil";"Euro";"Céntimos"};
    números; {""."Uno"."Dos"."Tres"."Cuatro"."Cinco"."Seis"."Siete"."Ocho"."Nueve"};
    Adolescentes; {"Diez"."Once"."Doce"."Trece"."Catorce"."Quince"."Dieciséis"."Diecisiete"."Dieciocho"."Diecinueve"};
    Decenas; {""."Diez"."Veinte"."Treinta"."Cuarenta"."Cincuenta"."Sesenta"."Sesenta"."Ochenta"."Ochenta"};
    grupo; {0;1;2;3};
    DEJAR(
    NO; SUSTITUIR( TEXTO( A1; REPETIR(0;9)&",00" );",";"0");
    h; CNUM( STXT( N; 3*grupo+1; 1) ); T; CNUM( STXT( N; 3*grupo+2; 1) );
    Ud; CNUM(STXT(N; 3*grupo+3; 1));
    texto; IF( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent" ); "");
    texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; " "; "" ); " " );
    texto; SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1)));
    BORRAR(SUSTITUIR(PROPERNAME(CONCAT( IF( H+T+U; Htxt & Ttxt & Utxt & Denom; "" )));"Mil";"Mil"))
    ))

    PD: 3 MVP de Excel y 6 días de desarrollo para obtener este resultado

    Fórmula para convertir un número en letras (Bélgica y Suiza)

    Estos 2 países no utilizan setenta y noventa por lo que se debe adaptar la fórmula. Por otra parte, los suizos tampoco utilizan los ochenta sino ochenta u octante. Sólo debes corregir esta información en la siguiente fórmula en la línea Usted.

    = DEJAR (
    Denom, {" millones "; " mil "; " euro "; " céntimos "},
    Números, {"","Uno","Dos","Tres","Cuatro","Cinco","Seis","Siete","Ocho","Nueve"},
    Adolescentes, {"Diez","Once","Doce","Trece","Catorce","Quince","Dieciséis","Diecisiete","Dieciocho","Diecinueve"},
    Decenas, {"","Diez","Veinte","Treinta","Cuarenta","Cincuenta","Sesenta","Septuaginta","Ochenta","Noventa"},
    grupo, {0;1;2;3},
    DEJAR(
    N, SUSTITUIR( TEXTO( A1, REPETIR(0,9)&",00" ),","0"),
    H, VALOR( MEDIO( N, 3*grp+1, 1) ), T, VALOR( MEDIO( N, 3*grupo+2, 1) ),
    U, VALOR( MEDIO( N, 3*grp+3, 1) ),
    Htxt, IF(H, IF(H>1, INDEX(Nums, H+1) & “cent”, “cent” ), “”),
    Ttxt, SI( T>1, ÍNDICE( Decenas, T+1 ) & SI( U>0, " ", "" ), " " ),
    Utxt, SI((T+U), SI(T=1, ÍNDICE(Adolescentes,U+1), ÍNDICE(Números,U+1))),
    TRIM(SUSTITUIR(PROPER(CONCAT( IF( H+T+U, Htxt & Ttxt & Utxt & Denom, "" ))),"Mil","Mil"))
    ))

    Artículos relacionados

    Boletín informativo

    1 vez al mes:
    Consejos y cuestionarios

      No te enviaremos spam. Puedes darte de baja en cualquier momento.

      69 Comentarios

      1. ronald
        16/09/2025 a las 21:06

        Hola,
        Gracias por la formula.

        Sin embargo, encuentro un problema
        Aquí esta el valor que indico 101319,31
        Aquí está la conversión que me da: "Cien Mil Trescientos Diecinueve Euros con Treinta y Un Céntimos Impuestos Incluidos"

        Me falta el 'uno'

        Responder

      2. Myke
        15/04/2025 a las 16:50

        Hola,
        Estoy buscando probadores para ver si quedan errores en la fórmula😎
        Probablemente no sea el más optimizado, pero ahí está...
        ::corrección ortográfica, gramatical, concordancias...
        :: adición de "y x céntimos" como lo exige el lenguaje de Molière
        :: ...

        Bueno, necesitas modificar (en la línea 8) la dirección de la celda que contiene tu número

        = DEJAR (
        Denom;{"millones";"mil";"Euro";"Céntimo"};Denomios;{"millones";"mil";"Euros";"Céntimos"};
        Nums;{"";"uno";"dos";"tres";"cuatro";"cinco";"seis";"siete";"ocho";"nueve"};
        Adolescentes;{"diez";"once";"doce";"trece";"catorce";"quince";"dieciséis";"diecisiete";"dieciocho";"diecinueve"};
        Diez;{"";"diez";"veinte";"treinta";"cuarenta";"cincuenta";"sesenta";"sesenta-";"ochenta";"ochenta-"};
        grupo;{0;1;2;3};
        DEJAR(
        N;SUBSTITUE(TEXTE($A$60;REPT(0;9)&",00");",";"0");Ne;CNUM(GAUCHE(N;9));
        H;CNUM(STXT(N;3*grp+1;1));T;CNUM(STXT(N;3*grp+2;1));U;CNUM(STXT(N;3*grp+3;1));HTU;CNUM(H&T&U);
        Htxt;SI(H>1;INDEX(Nums;H+1);"")&SI.CONDITIONS(H=0;"";(H>1)*(T=0)*(U=0);" cents ";((H=1)*(T=0)*(U=0))+((H0)*((T0)+(U0)));" cent ");
        Ttxt;SI(T>1;INDEX(Tens;T+SI((T=7)+(T=9);0;1))&SI.CONDITIONS((T=8)*(U=0);"s ";U=0;"";((T=8)+(T=9))*(U=1);"-";U=1;" et ";U>1;"-");" ");
        Utxt;SI((T+U);SI((T=1)+(T=7)+(T=9);INDEX(Teens;U+1);INDEX(Nums;U+1));"");
        Cnt;SI( (grp=3)*(HTU>0);" y ";"");
        Eur;SI((grupo=2)*(HTU=0);1;0);
        Mil;SI((grupo=1)*(HTU=1);1;0);
        Mls;SI((grupo=0)*(HTU=1);1;0);
        BORRAR(CONCAT(SI(H+T+U+Eur; Cnt & Htxt & Ttxt & SI(Mil=1;"";Utxt) & SI( ((HTU=1)*(Ne=1))+(Mls=1);Denom;Denoms);"")))
        ))

        Responder

        • Ofelia Miconnet
          11/08/2025 a las 10:09

          Bonjour.
          Lo primero que quiero decir es que muchas gracias por esta fórmula, ¡qué ahorro de tiempo para mi departamento!
          Sin embargo he notado algunos errores, cuando es cien solo por ejemplo 500, pone quinientos euros falsos. y 70 pone setenta.
          ¿También es posible eliminar las letras mayúsculas de los números?
          merci encore.

          Responder

          • Frédéric LE GUEN
            11/08/2025 a las 10:47

            Dejaré que la comunidad responda porque realmente no tengo tiempo para depurar la fórmula.

      3. Antoine
        17/12/2024 a las 15:06

        Bien hecho y gracias!!!!! 🙂

        Responder

      4. Jannin
        03/10/2024 a las 15:15

        Hola y muchas gracias por este trabajo. Sólo tengo un problema con el número 21200€ que me da Veinte Mil Doscientos Euros cuando debería tener veintiún mil doscientos Euros. ¿Pueden ayudarme? No encuentro la solución.

        Responder

        • Aurélie
          20/11/2024 a las 14:16

          Hola, lo intenté quitando Mil al final de la fórmula y dejando "" y funciona.

          Me gustaría ver agregar el "y" veintiuno

          Responder

      5. Benoit
        26/09/2024 a las 08:16

        Hola,
        gracias por este trabajo, muy practico
        Sólo una pregunta adicional: ¿cómo puedo hacer que la moneda sea una variable (Euro, Dólares, Libra, etc.) con una celda correspondiente en lugar de obligar al usuario a ingresar la fórmula para modificarla?

        Responder

        • Frédéric LE GUEN
          29/09/2024 a las 11:52

          Tienes que modificar la fórmula agregando SI.CONDITIONS o SEARCHX para agregar la moneda al final.

          Responder

      6. bachir
        25/09/2024 a las 09:54

        esq ¿funciona con excel 2013?

        Responder

        • Frédéric LE GUEN
          29/09/2024 a las 11:52

          Responder

      7. AXA
        16/02/2024 a las 17:01

        Hola,

        Gracias por tu trabajo.

        Sin embargo, ¿dónde debes ingresar la fórmula y dónde debes poner el número que deseas transformar?

        Merci

        Responder

        • Frédéric LE GUEN
          17/02/2024 a las 06:20

          Tu número debe estar en A1. Luego copias la fórmula donde quieras

          Responder

      8. Stefan
        23/11/2023 a las 12:43

        Bravo por el trabajo y muchas gracias por los comentarios que me ayudaron a entender.

        Responder

      9. Alain MATHIEU
        27/09/2023 a las 09:45

        Hola,

        Hay determinadas cifras que no son correctas, aunque no he podido identificar el motivo.
        Por ejemplo 31300 da un resultado doblemente falso: Treinta Mil Trescientos Euros Falso
        (¿faltan los mil y agrega FALSO al final?)
        Pero qué trabajo tan útil, que sólo requiere una verificación y posible corrección de una o dos cifras.

        Responder

      10. BEN MAAMER AHMED
        03/09/2023 a las 18:07

        copio pegado,,,no funciona???

        =LET(Denom; {"millones";"mil";"Dinares argelinos";"Céntimos"};Nums; {""."Uno"."Dos"."Tres"."Cuatro"."Cinco". “Seis”.”Siete”.”Ocho”.”Nueve”}; Adolescentes; {Diez”.”Once”.”Doce”.”Trece”.”Catorce”.”Quince”.”Dieciséis”.”Diez- siete"."Dieciocho"."Diecinueve"};Decenas; {""."Diez"."Veinte"."Treinta"."Cuarenta"."Cincuenta"."Sesenta"."Sesenta". "Ochenta". "Ochenta"};
        grupo; {0;1;2;3};LET(N; SUSTITUIR( TEXTO( B12; REPT(0;9)&",00" );",";"0");H; CNUM( STXT( N; 3*grp+1; 1) ); T; CNUM( STXT( N; 3*grp+2; 1) );U; CNUM( STXT( N; 3*grp+3; 1) );Htxt; SI( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent"); "");
        texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; " "; "" ); " " );Utxt; IF((T+U); IF((T=1)+(T=7)+(T=9); INDEX(Adolescentes;U+1);INDEX(Numeros;U+1)));DELETESPACE( SUSTITUIR(NOMBRE PROPIO(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" )));"Mil";"Mil"))))

        Responder

        • Frédéric LE GUEN
          04/09/2023 a las 08:21

          ¿Qué versión de Excel tienes?

          Responder

          • FANIE
            04/09/2023 a las 16:41

            Hola,

            Gracias por esta fórmula tan útil.

            Quiero quitar los céntimos pero al quitar el término "Céntimos" de la fórmula dejando las comillas, siguen apareciendo las letras correspondientes a los céntimos.
            Puedes ayudarme por favor ?
            Merci par avance

        • Faycal
          13/04/2025 a las 18:02

          Tengo el mismo problema

          Responder

      11. FIONA
        11/06/2023 a las 02:59

        Para agregar texto después de convertirlo a letras (Catherine), debes colocar el texto al final de la fórmula:
        BORRAR(SUSTITUIR(SUSTITUIR(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" ));"mil";"mil");"un millón";"un millón"))
        )) & “Acciones Clase A”.

        También puedes mejorar el texto con:
        )) & "acción" & If($A$1>1; "s ";" ") & "categoría A."
        La fórmula es simplista, podría haberla integrado al final del primer LET, cuidado (Alt+Enter) no debe ingresarse, estas son las claves para escribir:

        grupo; {0;1;2;3}; (Alt+Entrar)
        Suplemento; {"en acciones Clase A."};

        Luego modificando la última línea:

        CONCAT(BORRAR(SUSTITUIR(SUSTITUIR(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" ));"mil";"mil");"un millón";"un millón" )) & Suplente)

        Cada línea del LET debe verse como una opción asignada a una variable con nombre, por ejemplo: "nombre-A;{"elección 0; elección 1; elección 2; ...};"
        Luego, un poco más abajo, una directiva que puede contener una condición: "Utxt; Si( ​​​​($A$1>1; INDEX(nombre-A; 2));"
        En este ejemplo, cuando se ejecuta la fórmula, la variable denominada "Utxt" contendrá la "opción 1" debido al valor "2" pasado a INDEX.
        Esto es lo que se hace en cada línea del segundo LET.
        Tu turno.

        Responder

        • Frédéric LE GUEN
          11/06/2023 a las 03:48

          Muchas gracias Fiona por este trabajo tan diligente 🙂

          Responder

      12. FIONA
        11/06/2023 a las 01:58

        Encontré esta publicación por casualidad y encontré el mismo problema al ejecutar la fórmula. De hecho, a continuación debes eliminar cada línea vacía y al final de la línea anterior agregar Alt+Enter. O una fórmula de 15 líneas. El número a convertir se coloca en A1, la fórmula en B1 o en otro lugar. Para modificar A1, vaya a la octava línea (debajo del segundo "LET") y modifique "$A$8". Aproveché para corregir la última línea reemplazando “un millón” por “un millón”. Última información, el número está limitado a 1 dígitos + 9 decimales formateados por el modelo >> REPT(2;0) & ",9". Buena suerte :

        = DEJAR (

        Nombre; {"millones";"mil";"Euros";"Céntimos"};

        números; {"";"uno";"dos";"tres";"cuatro";"cinco";"seis";"siete";"ocho";"nueve"};

        Adolescentes; {"diez"; "once"; "doce"; "trece"; "catorce"; "quince"; "dieciséis"; "diecisiete"; "dieciocho"; "diecinueve"};

        Decenas; {"";"diez";"veinte";"treinta";"cuarenta";"cincuenta";"sesenta";"sesenta";"ochenta";"ochenta"};

        grupo; {0;1;2;3};

        DEJAR(

        NO; SUSTITUIR( TEXTO( $A$1; REPETIR(0;9)&",00" );",";"0");

        h; CNUM(STXT(N; 3*grupo+1; 1)); T; CNUM(STXT(N; 3*grupo+2; 1));

        Ud; CNUM(STXT(N; 3*grupo+3; 1));

        texto; IF( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent" ); "");

        texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; "-"; "" ); " " );

        texto; SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1));"") ;

        BORRAR(SUSTITUIR(SUSTITUIR(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" ));"mil";"mil");"un millón";"un millón"))

        ))

        Responder

      13. Catalina
        26/01/2023 a las 20:01

        Hola,

        Utilicé la siguiente fórmula para que mis números quedaran escritos en letras.

        =SI(K9="Compras";LET(
        Nombre; {"millones";"mil";"acciones clase A";""};
        números; {""."uno"."dos"."tres"."cuatro"."cinco"."seis"."siete"."ocho"."nueve"};
        Adolescentes; {"diez"."once"."doce"."trece"."catorce"."quince"."dieciséis"."diecisiete"."dieciocho"."diecinueve"};
        Decenas; {""."diez"."veinte"."treinta"."cuarenta"."cincuenta"."sesenta"."sesenta"."ochenta"."ochenta"};
        grupo; {0;1;2;3};
        DEJAR(
        NO; SUSTITUIR( TEXTO( I9; REPETIR(0;9)&",00" );",";"0");
        h; CNUM(STXT(N; 3*grupo+1; 1)); T; CNUM(STXT(N; 3*grupo+2; 1));
        Ud; CNUM(STXT(N; 3*grupo+3; 1));
        texto; IF( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent" ); "");
        texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; " "; "" ); " " );
        texto; SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1)));
        BORRAR(SUSTITUIR(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" ));"mil";"mil"))
        ));)

        Todo funciona excepto una celda. Debería escribir cien acciones de Clase A, pero en lugar de eso escribe cien acciones de Clase A FALSAS.

        ¿Puedes ayudarme a resolver el problema por favor?

        Merci.

        Responder

        • Catalina
          26/01/2023 a las 20:06

          Si el número es negativo, ¿se debe cambiar la fórmula?
          gracias otra vez

          Responder

          • Frédéric LE GUEN
            28/01/2023 a las 14:41

            En principio si (nunca he hecho la prueba)

        • Rodolfo Gaillot
          01/09/2023 a las 13:52

          Hola, necesitas modificar la línea Utxt, falta la condición si U>1, lo que da:
          texto; SI(U>1;SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1 ) )));"");

          Responder

        • Ethan
          26/04/2024 a las 16:45

          Gracias por esta fórmula, funciona.

          Responder

      14. VIRGINIA LÓBETA
        19/12/2022 a las 14:20

        ¡Hola
        esta parte no me funciona. ¿Cómo debo proceder para unir estas 2 funciones al resto?

        "Luego continúa de la misma manera (conversión de 2000 en la que falta la palabra Euros)

        =SI(DERECHA(E11;5)="mil";CONCAT(E11;"Euros");E11)

        y finalmente (conversión de 2000,20 a la que le falta la palabra Euros)

        =SI(ESTERREUR(CHERCHE("Euros";E12));CONCAT(GAUCHE(E12;CHERCHE("mille";E12)+4);" Euros et ";STXT(E12;CHERCHE("mille";E12)+6;999));E12)""
        Muchas gracias

        Responder

        • VIRGINIA LÓBETA
          30/01/2023 a las 11:27

          Hola,
          ¡¡Perdón por insistir pero estoy realmente estancado!!
          ¿Cómo debo proceder para escribir "EUROS" en Mil, Dos Mil, Tres Mil...?

          Merci d'avance de votre réponse

          Responder

      15. Jean-Claude COURAU
        30/11/2022 a las 17:23

        Muchas gracias, excelente y muy útil.

        Efectivamente es necesario hacer la pequeña corrección añadiendo ;""
        ÍNDICE(Números;U+1)) ;"");

        Se deben considerar otras mejoras, por ejemplo millones o millones si >1000000.

        Responder

      16. Tristán Geoffroy
        22/11/2022 a las 12:09

        Hola,
        gracias por esta fórmula que es inspiradora porque me parece muy inteligente,.., quizás demasiado para mí, porque no puedo entenderla o por qué no me funciona. ¿Es posible tener una explicación más literal de los pasos?
        Merci

        Responder

        • Frédéric LE GUEN
          24/11/2022 a las 17:29

          Houla, eres uno de los pocos que me pide que te explique una fórmula (generalmente la gente no se molesta en los detalles y simplemente copia la fórmula. Pero bueno, desafortunadamente no tengo suficiente tiempo para escribir un artículo sobre todos los complejidades de la fórmula ¿Qué parte no entiendes?

          Responder

          • Tristán GEOFFROY
            07/01/2023 a las 17:29

            Hola,
            bueno como no me funcionó, estuve tratando de entender para corregir mi error. Pero entiendo muy bien que se necesita un tiempo que no necesariamente tenemos.
            Desde entonces he usado otro, más de fuerza bruta y menos elegante.
            Aclararé mis dudas
            Feliz año

          • Tristán GEOFFROY
            15/01/2023 a las 20:00

            21 da veintiún euros en lugar de "veintiún euros", lo mismo para 31 41 51 61. ; cuando entendí el código estaría
            Corrígelo. 😉

          • Frédéric LE GUEN
            16/01/2023 a las 20:19

            Sí, sé que no es perfecto. Pero realmente no tengo tiempo para mejorar la función.

      17. JP
        14/11/2022 a las 20:59

        Es un buen comienzo pero está lleno de errores, errores que se pueden corregir con una serie de sustituciones.

        Después de eliminar las letras mayúsculas de la fórmula anterior, se obtiene:

        = DEJAR (
        Nombre; {"millones";"mil";"Euros";"céntimos"};
        números; {""."uno"."dos"."tres"."cuatro"."cinco"."seis"."siete"."ocho"."nueve"};
        Adolescentes; {"diez"."once"."doce"."trece"."catorce"."quince"."dieciséis"."diecisiete"."dieciocho"."diecinueve"};
        Decenas; {""."diez"."veinte"."treinta"."cuarenta"."cincuenta"."sesenta"."sesenta"."ochenta"."ochenta"};
        grupo; {0;1;2;3};
        DEJAR(
        NO; SUSTITUIR( TEXTO( F9; REPETIR(0;9)&",00" );",";"0");
        h; CNUM(STXT(N; 3*grupo+1; 1)); T; CNUM(STXT(N; 3*grupo+2; 1));
        Ud; CNUM(STXT(N; 3*grupo+3; 1));
        texto; IF( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent" ); "");
        texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; " "; "" ); " " );
        texto; SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1)));
        BORRAR(SUSTITUIR(CONCAT( SI( H+T+U; Htxt & Ttxt & Utxt & Denom; "" ));"mil";"mil"))
        ))

        (reemplace F9 con la celda que contiene el número)

        realizar las sustituciones:

        =SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(E9;"FALSO";"s");"ochenta euros";"ochenta euros");"ochenta céntimos"; "ochenta céntimos");"veinte uno";"veintiuno");" ";"-");"-Euros";"Euros");"Euros-";"Euros y") ;"-céntimos";"céntimos")

        (reemplace E9 con la celda que contiene el primer resultado)

        luego de la misma manera continuar (conversión de 2000 en la que falta la palabra Euros)

        =SI(DERECHA(E11;5)="mil";CONCAT(E11;"Euros");E11)

        y finalmente (conversión de 2000,20 a la que le falta la palabra Euros)

        =SI(ESTERREUR(CHERCHE("Euros";E12));CONCAT(GAUCHE(E12;CHERCHE("mille";E12)+4);" Euros et ";STXT(E12;CHERCHE("mille";E12)+6;999));E12)

        Responder

        • Frédéric LE GUEN
          18/11/2022 a las 14:57

          Muchas gracias por este trabajo y el esfuerzo dedicado.

          Responder

        • VIRGINIA LÓBETA
          19/12/2022 a las 14:59

          ¡Hola
          por mi parte esta parte de la fórmula no funciona:

          "Luego continúa de la misma manera (conversión de 2000 en la que falta la palabra Euros)

          =SI(DERECHA(E11;5)="mil";CONCAT(E11;"Euros");E11)

          y finalmente (conversión de 2000,20 a la que le falta la palabra Euros)

          =SI(ESTERREUR(CHERCHE("Euros";E12));CONCAT(GAUCHE(E12;CHERCHE("mille";E12)+4);" Euros et ";STXT(E12;CHERCHE("mille";E12)+6;999));E12)

          ¿Cómo procedo? gracias por su respuesta

          Responder

        • VIRGINIA LÓBETA
          30/01/2023 a las 12:04

          ¡Hola
          esta parte no me funciona. ¿Cómo debo proceder para unir estas 2 funciones al resto?

          "Luego continúa de la misma manera (conversión de 2000 en la que falta la palabra Euros)

          =SI(DERECHA(E11;5)="mil";CONCAT(E11;"Euros");E11)

          y finalmente (conversión de 2000,20 a la que le falta la palabra Euros)

          =SI(ESTERREUR(CHERCHE("Euros";E12));CONCAT(GAUCHE(E12;CHERCHE("mille";E12)+4);" Euros et ";STXT(E12;CHERCHE("mille";E12)+6;999));E12)""

          ¡Estoy realmente estancado!

          Muchas gracias

          Responder

        • Jannin
          03/10/2024 a las 10:34

          Hola, estoy muy interesado en esta fórmula y ¿pueden decirme dónde reemplazo las siguientes piezas por favor?

          =SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(E9;"FALSO";"s");"ochenta euros";"ochenta euros");"ochenta céntimos"; "ochenta céntimos");"veinte uno";"veintiuno");" ";"-");"-Euros";"Euros");"Euros-";"Euros y") ;"-céntimos";"céntimos")

          =SI(DERECHA(E11;5)="mil";CONCAT(E11;"Euros");E11)

          =SI(ESTERREUR(CHERCHE("Euros";E12));CONCAT(GAUCHE(E12;CHERCHE("mille";E12)+4);" Euros et ";STXT(E12;CHERCHE("mille";E12)+6;999));E12)

          Merci pour votre réponse.

          Responder

      18. Pierrick
        17/05/2022 a las 14:52

        Gracias por compartir.
        ¿Alguien ha hecho las adaptaciones para respetar las reglas de acuerdo de números en francés?

        Responder

      19. Pierre FUCHY
        29/03/2022 a las 14:08

        Hola!
        Bastante inútil y viejo, tengo Excel 365. Simplemente copié la fórmula de Francia y la pegué en B1, después de poner un número en A1. El milagro no ocurrió.
        La fórmula se pegó en 15 celdas de B1 a B15 y no aparece ningún mensaje de error.
        Intenté usar Word para pegar todo en la misma celda: todavía no sirve.
        ¿Problema de espacio o algo tan obvio que no lo mencionas?
        ¿O qué, no tengo el nivel?
        Si me puedes responder te lo agradezco de antemano.
        Pierre

        Responder

      20. SB
        06/11/2021 a las 08:35

        Hola,
        ¡impresionante!
        Pero... si pongo 10€ o 000,05, no tengo el "Euro" y además debería ser "Euros" con s...
        Bravo,
        SB

        Responder

        • Frédéric LE GUEN
          07/11/2021 a las 15:06

          Sí, correcto, se debe a que los 3 valores unitarios son 0, por lo que 0 * 'euro' no devuelve nada.

          Responder

          • hamid
            01/12/2021 a las 20:41

            Hola,

            Muchas gracias por lo que haces
            sólo por 100 te dan “Cent Faux Mille” en lugar de Hundred Thousand
            Merci.

          • Frédéric LE GUEN
            05/12/2021 a las 17:05

            Sí, este es el único error (pero puedes solucionarlo manualmente)

      21. Vero
        05/11/2021 a las 19:59

        ¡GUAU! ¡¡Impresionante!! Gracias ! NbLettre funciona muy difícil, ¡es genial!

        Responder

      22. nathalie
        22/10/2021 a las 12:34

        También tuve un problema con 3grp y tuve que escribir 3*grp, después de eso funciona perfectamente... mucho tiempo ahorrado.
        Muchas gracias.

        Responder

        • Frédéric LE GUEN
          23/10/2021 a las 16:16

          Muchas gracias por señalar el error tipográfico en el artículo. esta corregido

          Responder

      23. Sandra
        02/07/2021 a las 08:36

        Hola,

        ¡Gracias por esta fórmula realmente genial y por los comentarios que realmente ayudan!
        Tengo una pequeña pregunta con respecto al formato... Me gustaría que el número escrito completo solo incluyera letras minúsculas, intenté simplemente reemplazar las letras mayúsculas con letras minúsculas en la fórmula pero eso no cambió nada...

        ¿Hay algo adicional que hacer?

        Agradeciéndole de antemano

        Responder

        • Frédéric LE GUEN
          02/07/2021 a las 09:08

          Debe eliminar la instrucción PROPERNAME. Ella es quien escribe cada primera letra en mayúsculas.

          Responder

      24. aleya
        02/04/2021 a las 12:17

        hola, soy novato en Excel, no pude usar la fórmula, pegué en una celda pero no entendí cómo ingresar la celda con el número

        Responder

        • Maxime Caruel
          06/04/2021 a las 07:51

          En la décima línea de la fórmula, tienes A10 que debes reemplazar con tu celda que contiene un valor en números. Como novato también, lo logré. Gracias por compartir esta fórmula.

          Responder

          • NGUYEN
            07/04/2021 a las 16:09

            Hola,

            Soy igual que ALEYA. ¿También reemplacé la celda que contiene valor en números pero sigue siendo #NOMBRE?

            Sabes por qué ?

            Agradeciéndole de antemano,

          • Frédéric LE GUEN
            07/04/2021 a las 16:12

            Su versión de Excel no admite la función LET. Necesitas Excel 365

          • NGUYEN
            09/04/2021 a las 09:28

            Efectivamente tengo Excel 365 pero quizás la versión no esté actualizada.
            Y luego cambié la computadora y funciona bien.

            Además, cuando es 1000; 4000; ...no muestra euros, sólo mil cuatro mil. ¿Cómo podemos sumar cuando se trata del número x Mil?

            Muchas gracias por este hermoso trabajo.

            Bien à vous,

      25. Nicolás Georges
        27/02/2021 a las 11:44

        Gracias por compartir !

        Tuve que leer el artículo completo para descubrirlo. debería escribirse \ en mi configuración 😉
        Tuve un problema con 3grp y tuve que escribir 3*grp.
        De lo contrario, también tengo un problema con Utxt: tengo que agregar un ;"") al final del primer IF, de lo contrario obtengo, por ejemplo, "Dix Mille Cent Faux Euros", quiero euros reales :-p

        Nicolas.

        PD: la fórmula FR final con mi versión de Excel 365 (versión 2101, compilación 13628.20274):
        = DEJAR (
        Nombre; {"millones";"mil";"Euro";"Céntimos"};
        números; {""\"Uno"\"Dos"\"Tres"\"Cuatro"\"Cinco"\"Seis"\"Siete"\"Ocho"\"Nueve"};
        Adolescentes; {"Diez"\"Once"\"Doce"\"Trece"\"Catorce"\"Quince"\"Dieciséis"\"Diecisiete"\"Dieciocho"\"Diecinueve"};
        Decenas; {""\"Diez"\"Veinte"\"Treinta"\"Cuarenta"\"Cincuenta"\"Sesenta"\"Sesenta"\"Ochenta"\"Ochenta"};
        grupo; {0;1;2;3};
        DEJAR(
        NO; SUSTITUIR( TEXTO( $I$7; REPETIR(0;9)&",00" );",";"0");
        h; CNUM(STXT(N; 3*grupo+1; 1)); T; CNUM(STXT(N; 3*grupo+2; 1));
        Ud; CNUM(STXT(N; 3*grupo+3; 1));
        texto; IF( H; IF(H>1; INDEX( Nums; H+1 ) & "cent"; "cent" ); "");
        texto; SI( T>1; ÍNDICE( Decenas; T+1 ) & SI( U>0; "-"; "" ); " " );
        texto; SI((T+U); SI((T=1)+(T=7)+(T=9); ÍNDICE(Adolescentes;U+1);ÍNDICE(Números;U+1));"") ;
        BORRAR(SUSTITUIR(PROPERNAME(CONCAT( IF( H+T+U; Htxt & Ttxt & Utxt & Denom; "" )));"Mil";"Mil"))
        ))

        Responder

        • Frédéric LE GUEN
          27/02/2021 a las 17:46

          Hay que leerlo todo 😉 Siempre hay una razón detrás de una fórmula.
          Ok para el grupo 3* y gracias.

          Responder

        • Rémy
          10/05/2021 a las 19:34

          Hola y gracias por la fórmula "compatible" con mi versión. Pero para mí es un pequeño problema, las cantidades se muestran en centavos.
          Por ejemplo
          70 = setenta centavos
          700 = 7 euros
          Estoy buscando pero no encuentro donde está el error.
          tienes una idea?

          Responder

        • Pedro B
          27/08/2021 a las 14:47

          Gracias por todas estas acciones, cuando pongo 101000 obtengo el resultado: Cien Mil. No veo qué hay de malo en la fórmula.
          Gracias de antemano por sus comentarios.

          Responder

          • Frédéric LE GUEN
            05/09/2021 a las 10:24

            Ninguna idea. La fórmula no se ha ampliado más allá de 99

          • Sébastien
            20/12/2021 a las 18:16

            Hola,
            el problema surge de la visualización de 21, 000, etc...

          • Sébastien
            20/12/2021 a las 19:16

            Mi truco para hacerlo funcionar con miles de millones de francos CFA... y resolver el problema de 21, 000, etc...

            = DEJAR (
            Denom;{"mil millones";"millones";"mil";"";""};
            Nums;{""."Uno"."Dos"."Tres"."Cuatro"."Cinco"."Seis"."Siete"."Ocho"."Nueve"};
            Adolescentes;{"Diez"."Once"."Doce"."Trece"."Catorce"."Quince"."Dieciséis"."Diecisiete"."Dieciocho"."Diecinueve"};
            Decenas;{""."Diez"."Veinte"."Treinta"."Cuarenta"."Cincuenta"."Sesenta"."Sesenta"."Ochenta"."Ochenta"};
            grp;{0;1;2;3;4};
            DEJAR(
            N;SUBSTITUE(TEXTE(ARRONDI(F38;0);REPT(0;12)&",00");",";"0");
            H;CNUM(STXT(N;3*grupo+1;1));
            T;CNUM(STXT(N;3*grp+2;1));
            U;CNUM(STXT(N;3*grp+3;1));
            Htxt;IF(H;SI(H>1;INDEX(Nums;H+1)&"cent";"cent");"");
            Ttxt;SI(T>1;INDEX(Decenas;T+1)&IF(U>0;" ";"");" ");
            Utxt;SI((T+U);SI((T=1)+(T=7)+(T=9);INDEX(Teens;U+1);INDEX(Nums;U+1));" ");
            BORRAR(IF(C13=1000;SUSTITUIR(PROPERNAME(CONCAT(IF(H+T+U;Htxt&Ttxt&Utxt&Denom;"")));"Mil";" Mil");PROPERNAME(CONCAT(IF(H+T+ U ;Htxt&Ttxt&Utxt&Denom;""))))))&" Franco CFA")

      26. Efram
        25/01/2021 a las 15:41

        Por otro lado para modificar según el país, por ejemplo Suiza, solo hay que sustituir “ochenta” por ochenta y noventa por noventa o ¿hay que modificar otros puntos de la fórmula?

        Responder

        • Frédéric LE GUEN
          25/01/2021 a las 15:51

          Si, si, si,.... un poco de paciencia.
          Sé que tengo que hacerlo pero tengo mil tareas que hacer primero.
          No es fácil ser el último MVP en francés. Tengo muchos temas que cubrir.
          Pero se hará.

          Responder

          • Efram
            26/01/2021 a las 15:49

            Ok gracias por el artículo y los consejos súper prácticos.

        • Frédéric LE GUEN
          25/01/2021 a las 22:35

          Pero para tener setenta, en realidad son setenta, como en Bélgica.

          Responder

      27. Charles
        21/01/2021 a las 10:08

        Sombrero ! Sin embargo, al leer la fórmula final, inmediatamente vi… ¡que es un verdadero dolor de cabeza!
        Por otro lado, ¡me encanta la idea de hacerlo con fórmulas MACRO-FREE!
        Bravo!

        Responder

        • Frédéric LE GUEN
          21/01/2021 a las 15:14

          Por supuesto que había trabajo. Por eso compartí la función porque es imposible crear este tipo de fórmula desde cero. Y las macros, si podemos evitarlas, es mucho mejor

          Responder

      Dejar un comentario

      Su dirección de correo electrónico no será publicada. Los campos necesarios están marcados con *

      Este sitio usa Akismet para reducir los no deseados. Obtenga más información sobre cómo se procesan sus datos de comentarios.