Convertir des nombres en mots dans Google Sheets : Formule

Si vous utilisez Google Sheets pour créer des factures, des bulletins de salaire, des bons de commande ou des bons de livraison, vous pouvez avoir besoin de convertir des nombres en mots. Cela peut être nécessaire pour se conformer à la réglementation ou pour faciliter la lecture des chiffres. Quelle que soit la raison, j’ai écrit une formule et une fonction personnalisée pour cela.

Avant de commencer, veuillez noter que ma formule est codée pour convertir des nombres jusqu’à 8 chiffres, c’est-à-dire de 1 à 99 999 999,00.

Il existe quatre façons de convertir des nombres en mots dans Google Sheets:

  1. Utiliser une formule.
  2. Utiliser une fonction personnalisée.
  3. Utiliser la fonction native BAHTTEXT.
  4. Utiliser un complément pris en charge ou un script Google Apps.

Dans cet article, je vais vous fournir ma formule personnalisée et une fonction nommée basée sur celle-ci que vous pouvez importer dans votre feuille et utiliser. Le résultat sera dans un système international.

Si vous souhaitez utiliser un complément, vous pouvez en trouver un sur le Marketplace de Google Workspace. Vous pouvez accéder au Marketplace à partir du menu Extensions de votre feuille.

La fonction BAHTTEXT est déjà présentée dans mon guide de fonctions. Cette fonction native de Google Sheets convertit un nombre en texte thaï. Vous pouvez le traduire en anglais et l’utiliser dans une certaine mesure, mais il présente des limitations que j’ai déjà mentionnées dans ce tutoriel.

Formule pour convertir des nombres en mots dans Google Sheets

Pour convertir des nombres en mots dans Google Sheets, vous pouvez utiliser la formule suivante:

=INDEX(TRIM(LET(n,INT(B7),vrA,SEQUENCE(9),vrB,SEQUENCE(10,1,10),vrC,SEQUENCE(8,1,20,10),vrD,VSTACK("Un","Deux","Trois","Quatre","Cinq","Six","Sept","Huit","Neuf"),vrE,VSTACK("Dix","Onze","Douze","Treize","Quatorze","Quinze","Seize","Dix-Sept","Dix-Huit","Dix-Neuf"),vrF,VSTACK("Vingt","Trente","Quarante","Cinquante","Soixante","Soixante-dix","Quatre-Vingts","Quatre-Vingt-Dix"),td," Mille ",hd," Cent ",mn," Million ",ln,VALUE(LEFT(n,2)),fv,RIGHT(n,5),le,LEN(fv),ltdn,XLOOKUP(SEQUENCE(5),IF(le=1,"",le),VALUE(RIGHT(fv,2)),),rgA,VSTACK(VALUE(MID(fv,SEQUENCE(5),1)),VALUE(MID(LEFT(TEXT(n,"00000000"),3),SEQUENCE(3,1,3,-1),1))),rgB,XLOOKUP(rgA,vrA,vrD,IF(,,)),rgC,XLOOKUP(ltdn,vrB,vrE,IF(,,)),rgD,XLOOKUP(IF(ltdn-rgA>0,ltdn-rgA,),vrC,vrF,IF(,,)),z,INDEX(rgA,1),w,INDEX(rgA,2),ww,INDEX(rgA,3),uu,INDEX(rgA,6),u,INDEX(rgA,7),a,INDEX(rgB,1),aa,INDEX(rgB,2),aaa,INDEX(rgB,3),aaaa,INDEX(rgB,4),aaaaa,INDEX(rgB,5),aaaaaa,INDEX(rgB,6),pq,INDEX(rgB,7),b,INDEX(rgC,2),bb,INDEX(rgC,3),bbb,INDEX(rgC,4),bbbb,INDEX(rgC,5),c,INDEX(rgD,2),cc,INDEX(rgD,3),ccc,INDEX(rgD,4),cccc,INDEX(rgD,5),xl,XLOOKUP(VALUE(LEFT(fv,2)),vrB,vrE,0),xll,XLOOKUP(IF(VALUE(LEFT(fv,2))-INDEX(rgA,2)>0,VALUE(LEFT(fv,2))-INDEX(rgA,2),""),vrC,vrF,IF(,,)),codeAA,IFS(AND(le=5,xl>0,ww=0),xl&td&" "&aaa,AND(le=5,xl=0,ww=0),xll&" "&aa&td&" "&aaa,AND(le=5,xl>0,ww>0),xl&td&" "&aaa&hd,AND(le=5,xl=0,ww>0),xll&" "&aa&td&" "&aaa&hd,1=1," "),testA,XLOOKUP(ln,vrB,vrE,IF(,,)),testB,XLOOKUP(IF(ln-u>0,ln-u,),vrC,vrF,IF(,,)),codeA,IFS(AND(testA>0,uu>0),testA&mn,AND(testB>0,uu>0),testB&" "&pq&mn,AND(testA>0,uu=0),testA&mn,AND(testB>0,uu=0),testB&" "&pq&mn,1=1," "),codeB,IFS(AND(le=5,bbbb>0),bbbb,AND(le=5,bbbb=0),cccc&" "&aaaaa,1=1," "),codeC,IFS(AND(n>999999,z=0,w=0,ww=0,uu=0)," ",AND(n>999999,z=0,w=0,ww>0,uu=0),REPLACE(codeAA,1,10,""),1=1,codeAA),IFS(le=1,a,AND(b>0,le=2),b,AND(b=0,le=2),c&" "&aa,AND(le=3,bb=0),a&hd&cc&" "&aaa,AND(le=3,bb>0),a&hd&bb,AND(le=4,bbb>0,w=0),a&td&aa&bbb,AND(le=4,bbb=0,w=0),a&td&aa&ccc&" "&aaaa,AND(le=4,bbb>0,w>0),a&td&aa&hd&bbb,AND(le=4,bbb=0,w>0),a&td&aa&hd&ccc&" "&aaaa,AND(n>9999,n<100000),codeC&" "&codeB,AND(n>99999,n<1000000),aaaaaa&hd&" "&codeC&" "&codeB,AND(n>999999,n<10000000,uu>0),pq&mn&aaaaaa&hd&" "&codeC&" "&codeB,AND(n>999999,n<10000000,uu=0),pq&mn&" "&codeC&" "&codeB,AND(n>9999999,n<100000000,uu>0),codeA&" "&aaaaaa&hd&" "&codeC&" "&codeB,AND(n>9999999,n<100000000,uu=0),codeA&" "&codeC&" "&codeB))))

La formule ci-dessus convertit le nombre dans la cellule B7 en mots dans le système international. Lorsque vous utilisez la formule, remplacez simplement B7 par la référence de la cellule contenant le nombre.

Screenshot of a Google Sheets formula to convert numbers to words.
Figure 1

Remarque: La référence de la cellule n’apparaît qu’une seule fois dans la formule, ce qui la rend très pratique à utiliser.

La formule de conversion de nombre en mots présente les caractéristiques suivantes:

  • Il s’agit d’une formule combinée et ne nécessite aucune cellule auxiliaire.
  • Elle convertit les nombres de 1 à 99 999 999.
  • Lorsque la cellule contenant le nombre contient des décimales, elle ne convertit que la partie entière. La partie décimale est ignorée. Vous pouvez utiliser les fonctions ARROND, ARRONDINF et ARRONDUP pour arrondir le nombre avant de le convertir en mots. Par exemple, vous pouvez remplacer B7 par ARROND(B7).

Fonction nommée pour convertir des nombres en mots dans Google Sheets

Si vous préférez une méthode plus simple pour convertir des nombres en mots dans le système international dans Google Sheets, vous pouvez utiliser ma fonction personnalisée nommée NumberToWords().

Syntaxe de la fonction personnalisée NumberToWords :

NUMBERTOWORDS(nombre)

Cela comprend toutes les fonctionnalités de la formule de conversion de nombre en mots mentionnée ci-dessus.

Voici quelques exemples d’utilisation de NumberToWords dans Google Sheets:

`=NUMBERTOWORDS(125055) // Retourne « Cent Vingt-Cinq Mille Cinquante-Cinq »« `

=NUMBERTOWORDS(A1) // Convertit le nombre dans la cellule A1 en mots

=NUMBERTOWORDS(ARROND(A1)) // Arrondit et convertit le nombre dans la cellule A1 en mots

Custom Google Sheets named function to convert numbers to words.
Figure 2

Pour utiliser la fonction NumberToWords, vous devez l’importer dans la feuille que vous souhaitez utiliser. Si vous souhaitez l’utiliser dans plusieurs feuilles, vous pouvez l’importer dans chaque feuille ou faire une copie de la première feuille.

Suivez ces trois étapes pour importer NumberToWords et convertir des nombres en mots dans vos feuilles Google:

  1. Faites une copie de ma feuille d’exemple.
  2. Ouvrez la feuille dans laquelle vous souhaitez utiliser la fonction.
  3. Allez dans le menu Données > Fonctions nommées, puis cliquez sur Importer une fonction.

Formule de tableau NumberToWords

Nous utilisons généralement la fonction ARRAYFORMULA dans Google Sheets pour étendre le résultat d’une formule, mais elle ne fonctionne pas avec la fonction personnalisée NumberToWords.

Cependant, vous pouvez toujours convertir plusieurs nombres en mots en une seule fois en utilisant NumberToWords et la fonction lambda MAP.

Voici la formule générique:

=MAP(plage, LAMBDA(r, NUMBERTOWORDS(r)))

Remplacez « plage » par la plage de cellules contenant les nombres. Par exemple, pour convertir les nombres de la plage C3:C7 en mots, vous pouvez utiliser la formule suivante dans la cellule D3, en supposant que D3:D7 soit vide:

=MAP(C3:C7, LAMBDA(r, NUMBERTOWORDS(r)))

Array formula in Google Sheets to convert numbers to words for multiple cells at once.
Figure 3

Conclusion

Vous pouvez utiliser les fonctions MAJUSCULE, MINUSCULE et PREMIERMAJ dans Google Sheets avec la fonction de conversion de nombre en mots ci-dessus pour formater les nombres convertis en mots.

Vous pouvez également ajouter un préfixe ou un suffixe personnalisé, comme « Rupees » ou « Seulement ».

Voici quelques exemples:

=UPPER(NUMBERTOWARDS(1502)) // Retourne "MILLE CINQ CENT DEUX"

=NUMBERTOWORDS(1502)&" Seulement" // Retourne "MILLE CINQ CENT DEUX Seulement"

="Rupees "&NUMBERTOWARDS(1502)&" Seulement" // Retourne "Rupees MILLE CINQ CENT DEUX Seulement"

Lecture complémentaire :

  1. Comment créer des fonctions nommées dans Google Sheets.
  2. Convertir la durée en jours, heures, minutes dans Google Sheets.
  3. Créer un convertisseur d’unités dans Google Sheets en utilisant la fonction CONVERT.
  4. Comment convertir du texte de devise en nombre dans Google Sheets.
  5. Comment convertir des devises dans Google Sheets en utilisant la fonction GOOGLEFINANCE.

Articles en lien