Convertir les nombres en mots dans Google Sheets : Formule

Si vous utilisez Google Sheets pour créer des factures, des fiches de paie, des bons de commande ou des bons de livraison, vous souhaiterez peut-être convertir les nombres en mots. Cela peut être nécessaire pour se conformer à la réglementation ou rendre les nombres plus faciles à lire. Quelle que soit la raison, j’ai créé une formule et une fonction personnalisée avec un nom pour cela.

Avant de commencer, veuillez noter que ma formule est conçue pour convertir des nombres allant 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 une extension prise en charge ou un script Google Apps.

Dans cet article, je vais vous fournir ma formule personnalisée et une fonction avec un nom 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 une extension, vous pouvez en trouver une sur le Google Workspace Marketplace. 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ïlandais. Vous pouvez le traduire en anglais et l’utiliser dans une certaine mesure, mais il présente des limites que j’ai déjà mentionnées dans ce tutoriel.

Formule pour convertir les nombres en mots dans Google Sheets

Pour convertir les 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-Vingt","Quatre-Vingts-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 cellule contenant le nombre.

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

Note: La référence de cellule n’apparaît qu’une 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 qui ne nécessite aucune cellule d’aide.
  • Elle convertit les nombres de 1 à 99 999 999.
  • Lorsque la cellule contenant le nombre contient des décimales, seule la partie entière est convertie. La partie décimale est ignorée. Vous pouvez utiliser les fonctions ROUND, ROUNDDOWN ou ROUNDUP pour arrondir le nombre avant de le convertir en mots. Par exemple, vous pouvez remplacer B7 par ROUND(B7).

Fonction avec un nom pour convertir les nombres en mots dans Google Sheets

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

Syntaxe de la fonction avec un nom NumberToWords :

NUMBERTOWORDS(nombre)

Cela inclut toutes les fonctionnalités de la formule de conversion de nombre en mots décrite 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(ROUND(A1)) // Arrondit et convertit le nombre dans la cellule A1 en mots

Custom Google Sheets named function to convert numbers to words.

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 les nombres en mots dans vos Google Sheets :

  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 avec des noms et cliquez sur Importer une fonction.

Formule ARRAYFORMULA pour NumberToWords

Nous utilisons généralement la fonction ARRAYFORMULA dans Google Sheets pour étendre un résultat de formule, mais elle ne fonctionne pas avec la fonction avec un nom 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 de cellules, LAMBDA(r, NUMBERTOWORDS(r)))

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

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

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

Conclusion

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

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

Voici quelques exemples :

=UPPER(NUMBERTOWORDS(1502)) // Retourne « MILLE CINQ CENTS DEUX »
=NUMBERTOWORDS(1502)&" Only" // Retourne « Mille Cinq Cents Deux Only »
="Rupees "&NUMBERTOWARDS(1502)&" Only" // Retourne « Rupees Mille Cinq Cents Deux Only »

Lecture complémentaire :

  1. Comment créer des fonctions avec des noms dans Google Sheets.
  2. Convertir la durée en jours, heures et 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 une devise dans Google Sheets en utilisant la fonction GoogleFinance.

Articles en lien