Comment épeler ou convertir des nombres en mots anglais dans Excel?
Supposons que vous ayez beaucoup de numéros de montant de prix et que vous deviez maintenant les convertir ou les épeler en chaînes de texte. Par exemple, convertissez $123.55 aux mots anglais cent vingt-trois dollars et cinquante-cinq cents. Dans Excel, il n'y a aucune installation efficace pour résoudre ce problème mais en utilisant le code VBA long et complexe. Dans cet article, je vais vous présenter quelques méthodes pour y faire face.
Épelez ou convertissez des nombres en mots anglais avec le code VBA
Épelez ou convertissez des nombres en mots anglais avec Kutools for Excel
Épelez ou convertissez des nombres en mots anglais avec le code VBA
Le long code VBA suivant peut vous aider à épeler des nombres en chaînes de texte. Procédez comme suit:
1. Maintenez le ALT + F11 clés, et il ouvre le Microsoft Visual Basic pour applications fenêtre.
2Cliquez sur insérer > Moduleet collez la macro suivante dans le Fenêtre du module.
VBA: épeler les numéros de devise en mots anglais dans Excel
Function SpellNumberToEnglish(ByVal pNumber)
'Updateby20131113
Dim Dollars, Cents
arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
pNumber = Trim(Str(pNumber))
xDecimal = InStr(pNumber, ".")
If xDecimal > 0 Then
Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
pNumber = Trim(Left(pNumber, xDecimal - 1))
End If
xIndex = 1
Do While pNumber <> ""
xHundred = ""
xValue = Right(pNumber, 3)
If Val(xValue) <> 0 Then
xValue = Right("000" & xValue, 3)
If Mid(xValue, 1, 1) <> "0" Then
xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
End If
If Mid(xValue, 2, 1) <> "0" Then
xHundred = xHundred & GetTens(Mid(xValue, 2))
Else
xHundred = xHundred & GetDigit(Mid(xValue, 3))
End If
End If
If xHundred <> "" Then
Dollars = xHundred & arr(xIndex) & Dollars
End If
If Len(pNumber) > 3 Then
pNumber = Left(pNumber, Len(pNumber) - 3)
Else
pNumber = ""
End If
xIndex = xIndex + 1
Loop
Select Case Dollars
Case ""
Dollars = "No Dollars"
Case "One"
Dollars = "One Dollar"
Case Else
Dollars = Dollars & " Dollars"
End Select
Select Case Cents
Case ""
Cents = " and No Cents"
Case "One"
Cents = " and One Cent"
Case Else
Cents = " and " & Cents & " Cents"
End Select
SpellNumberToEnglish = Dollars & Cents
End Function
Function GetTens(pTens)
Dim Result As String
Result = ""
If Val(Left(pTens, 1)) = 1 Then
Select Case Val(pTens)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
End Select
Else
Select Case Val(Left(pTens, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
Case Else
End Select
Result = Result & GetDigit(Right(pTens, 1))
End If
GetTens = Result
End Function
Function GetDigit(pDigit)
Select Case Val(pDigit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
3. Ensuite, enregistrez le code et revenez à la feuille de calcul, dans la cellule B2 adjacente, entrez la formule = SpellNumberToEnglish (A1), voir capture d'écran:
4. Puis appuyez Entrer et sélectionnez la cellule B2, puis faites glisser la poignée de recopie vers la plage contenant cette formule selon vos besoins. Et tous les nombres de devises ont été épelés en mots anglais. Voir la capture d'écran:
Notes: Comme ce sont des formules, lorsque vous devez les copier et les coller, veuillez les coller en tant que valeurs.
Épelez ou convertissez des nombres en mots anglais avec Kutools for Excel
Peut-être que le long code ci-dessus peut vous rendre fou, ne vous inquiétez pas, ici je peux vous donner un moyen simple et rapide de le résoudre. Avec le Kutools for Excel's Nombres en mots fonction, vous pouvez convertir rapidement et facilement les nombres en chaînes de texte.
Kutools for Excel- Comprend plus de 300 outils pratiques pour Excel. Essai gratuit complet de 30 jours, aucune carte de crédit requise! Achetez-le Maintenant
1. Sélectionnez les numéros de plage que vous souhaitez épeler, puis cliquez sur Kutools > Contenu > Nombres en mots.
2. Dans la boîte de dialogue contextuelle, choisissez Anglais du Langues. Et vous pouvez prévisualiser les résultats de la droite Aperçu Vitre. Voir la capture d'écran:
3. Puis clique Ok or Appliquer. Et tous les numéros de montant de prix ont été convertis en chaînes de texte dans la plage d'origine.
Notes: Si vous souhaitez simplement convertir des nombres en mots anglais (pas en devise), veuillez vérifier Non converti en devise case à cocher.
Cette caractéristique fantastique de Nombres en mots peut facilement traduire les numéros de devise en texte de devise en anglais ou en chinois, comme traduire 32.01 en "trente-deux dollars et un cent" ou "叁拾 贰元 零 壹 分". Faites un essai gratuit!
Démo: Épelez les nombres de devises en mots anglais
Meilleurs outils de productivité bureautique
Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et facilite grandement votre travail
- Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!